class A{ int a; public:A(const A& rhs){.} A b=(*this);//////这句话为什么不对?};class A{int a; public:A(const A& rhs){.} void f(){A b=(*this);//////这句话为什么不对?}};
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 15:11:27
![class A{ int a; public:A(const A& rhs){.} A b=(*this);//////这句话为什么不对?};class A{int a; public:A(const A& rhs){.} void f(){A b=(*this);//////这句话为什么不对?}};](/uploads/image/z/7363310-14-0.jpg?t=class+A%7B+int+a%3B+public%3AA%28const+A%26+rhs%29%7B.%7D+A+b%3D%28%2Athis%29%3B%2F%2F%2F%2F%2F%2F%E8%BF%99%E5%8F%A5%E8%AF%9D%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%AF%B9%3F%7D%EF%BC%9Bclass+A%7Bint+a%3B+public%3AA%28const+A%26+rhs%29%7B.%7D+void+f%28%29%7BA+b%3D%28%2Athis%29%3B%2F%2F%2F%2F%2F%2F%E8%BF%99%E5%8F%A5%E8%AF%9D%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%AF%B9%3F%7D%7D%EF%BC%9B)
class A{ int a; public:A(const A& rhs){.} A b=(*this);//////这句话为什么不对?};class A{int a; public:A(const A& rhs){.} void f(){A b=(*this);//////这句话为什么不对?}};
class A{ int a; public:A(const A& rhs){.} A b=(*this);//////这句话为什么不对?};
class A{
int a; public:A(const A& rhs){.}
void f()
{
A b=(*this);//////这句话为什么不对?
}
};
class A{ int a; public:A(const A& rhs){.} A b=(*this);//////这句话为什么不对?};class A{int a; public:A(const A& rhs){.} void f(){A b=(*this);//////这句话为什么不对?}};
你实现的是copy构造函数,而不是operator=的重载
如果不重载,则改成
A b(*this);即可.