C++成员指针无法赋值
class Image{
public:
int* getA(){return a;}
Image& operator=(const Image&r);
private:
int* a;
}
Image& operator=(const Image&r){
a = new int;
*a = 23;
}
void main(){
Image lena("lena.bmp");
Image lena1 = lena;
int* b = lena1.getA();
cout << *b;
}
这是部分代码,运行后,指针b无法赋值啊,为什么呢?
[解决办法]
Image lena1 = lena;这一句直接调用复制构造函数,你贴出来的代码里没有。
[解决办法]
class Image
{
public:
int* getA(){return a;}
Image& operator=(const Image&r);
private:
int* a;
};
Image& Image::operator=( const Image&r )
{
a = new int;
*a = 23;
return *this;
}
void main(){
Image lena;
Image lena1 ;
lena1= lena;
int* b = lena1.getA();
std::cout << *b;
}