刘家奕_ 2022-03-17 09:28 采纳率: 65.2%
浏览 19
已结题

friend友元函数不是可以访问私有成员吗?我这里为什么提示x没有被定义



```c++
#include <iostream>
using namespace std;
 class Myclass 
{public:
  Myclass (int a,int b) { x=a;y=b;}
  friend void copy(Myclass & my);
  void print( )
  { cout<<"x="<<x<<endl;
    cout<<"y="<<y<<endl;
  } 
private:
int x,y;
};
void copy(Myclass & my)
{
    x=my.x;
    y=my.y;
}
int main()
{
    Myclass m1(1,2);
    Myclass m2(3,4);
    m1.print();
    m2.print();
    copy(m1);
    m2.print();
    return 0;
}

```

展开全部

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-03-17 09:40
    关注
    
    #include <iostream>
    
    using namespace std;
    
    class Myclass
    {
    public:
        Myclass(int a, int b)
        {
            x = a;
            y = b;
        }
    
        void print() const
        {
            cout << "x=" << x << endl;
            cout << "y=" << y << endl;
        }
    
    private:
        int x, y;
    
        friend void copy(Myclass &m1, const Myclass &m2);
    };
    
    void copy(Myclass &m1, const Myclass &m2)
    {
        m1.x = m2.x;
        m1.y = m2.y;
    }
    
    int main()
    {
        Myclass m1(1, 2);
        Myclass m2(3, 4);
        m1.print();
        m2.print();
        copy(m2, m1);
        m2.print();
        return 0;
    }
    

    展开全部

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

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月23日
  • 创建了问题 3月17日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部