#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;
}
可以请采纳!!!