关于友元类的问题,有点不懂,请好心人解答下
先上代码#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;
}编译就通不过呢,请大神给解答下,新手可能问的有点白痴,多包涵!谢谢!