c++问题求解答,。

#includeciostream>
using namespace std;
class Sample{
int n;
public:
Sample(int i) {n=i;}

friend int add(Sample &s1,Sample &52);};

int add(Sample &s1,Sample &52)

return.sl.n+s2.n;

};

int main(){
Sample s1(10),2(20;

cout<<add(s1,s2)<<endl;

return 0;

)

思考题:

函数add是类的 Sample成员函数吗?它是类Sample的什么函数?如果将“/行a”中的 friend去掉,能够得到原来的结果吗?为什么使用成员函数方法,你能够改写程序实现以上程序功能吗?

首先,这题目抄错了吧..修正一下


#include <iostream>
using namespace std;
class Sample{
int n;
public:
Sample(int i) {n=i;}

friend int add(Sample &s1,Sample &s2);
};

int add(Sample &s1,Sample &s2) {

return s1.n+s2.n;

}

int main(){
Sample s1(10),s2(20);

cout<<add(s1,s2)<<endl;

return 0;


}

answer:不是;是友元函数;不能,因为只有友元或类本身能访问类的private对象(未说明标识符默认为private,如n);如下(可以请采纳!!!)



#include <iostream>
using namespace std;
class Sample{
int n;
public:
Sample(int i) {n=i;}

int add(Sample &s1,Sample &s2)
{
  return s1.n + s2.n;
}
};

int main() {
Sample s1(10),s2(20);

cout<<s1.add(s1,s2)<<endl; //>>s1<<.add(..) 可以换成其他的Sample实例,如:s2.add(s1,s2)效果一样

return 0;
}

可以请采纳!!!