首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++成员指针没法赋值

2013-01-21 
C++成员指针无法赋值class Image{public:int* getA(){return a}Image& operator(const Image&r) privat

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;这一句其实没有调用你写的重载赋值操作符函数,它直接初始化了。
分成两句试试
Image lena1;
lena1 = lena;

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;
}

热点排行