下面的代码中
B(& k)这个构造函数为甚么只能按引用方式来传递对象参数,而用按值的方式却编译报错??
#include<iostream>
using namespace std;
class A
{
public:
A()
{
}
A(int aa)
{
a=aa;
}
private:
int a;
};
class B
{
public:
B()
{
a=0;
b=0;
c=0;
}
B(int aa,int bb) : a(aa),b(bb),c(aa-bb)
{
}
B(B &k)
{
a=k.a;
b=k.b;
c=k.a-k.b;
}
void printf()
{
cout<<a<<""<<b<<""<<c<<""<<endl;
}
private:
int a;
int b;
int c;
A d;
};
int main()
{
B a,b(1,2);
B x=a,y(b),z(2,1);
a.printf();
b.printf();
x.printf();
y.printf();
z.printf();
return 0;
}