m0_69213177 2022-06-04 21:13 采纳率: 33.3%
浏览 15
已结题

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去掉,能够得到原来的结果吗?为什么使用成员函数方法,你能够改写程序实现以上程序功能吗?

  • 写回答

1条回答 默认 最新

  • 元气_hi 2022-06-04 22:25
    关注

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

    
    #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;
    }
    

    可以请采纳!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月4日

悬赏问题

  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 结构功能耦合指标计算
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询