| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:关于友元类的问题,有点不懂,请好心人解答下
只看楼主 加入收藏
fc176154001
Rank: 2
来 自:四川阆中
等 级:论坛游民
帖 子:87
专家分:96
注 册:2013-6-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
关于友元类的问题,有点不懂,请好心人解答下
先上代码
#include"iostream"
using namespace std;
class X
{
private:
    int _chang;
    int _kuan;
public:
    void set(int a,int b)  //请问这里为什么不能用构造函数 X(int a,int b) {_chang=a;_kun=b} ?
    {
        _chang=a;
        _kuan=b;
    }
    int areax()
    {
        return (_chang)*(_kuan);
    }
    friend class Y;
};
class Y
{
private:
    X ar;
public:
    Y()  //接上面所说的,一使用构造函数X,这里就会报错!!
    {
        ar._chang=2;
        ar._kuan=2;
    }
    int areay()
    {
        return (ar._chang)*(ar._kuan);
    }
};
void main()
{
    X x;
    x.set(3,6);
    cout<<"矩形X的面积为:"<<x.areax()<<endl;
    Y y;
    cout<<"矩形Y的面积为:"<<y.areay()<<endl;
    return;
}
这个程序可以编译的,但是当把类X中
void set(int a,int b)  
    {
        _chang=a;
        _kuan=b;
    }
这个函数改成X的构造函数
X(int a,int b)
{
    _chang=a;
    _kuan=b;
}编译就通不过呢,请大神给解答下,新手可能问的有点白痴,多包涵!谢谢!
搜索更多相关主题的帖子: private include public private include public friend friend private include public friend 
2014-08-19 04:32
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
第一,缺少无参数构造函数,X x调用了无参数的构造函数,类在没有定义任何构造函数的时候,系统才会默认产生构造函数,一旦定义了任何形式的构造函数,系统就不会在产生默认的构造函数了。
第二,构造函数不能显示调用,X.x(3,6)这样有错误

实现自己既定的目标,必须能耐得住寂寞单干。
2014-08-19 07:43
fc176154001
Rank: 2
来 自:四川阆中
等 级:论坛游民
帖 子:87
专家分:96
注 册:2013-6-16
收藏
得分:0 
谢谢

大神永远不能体会菜鸟们之间的惺惺相惜,
2014-08-19 09:23
快速回复:关于友元类的问题,有点不懂,请好心人解答下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014771 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved