我对复制分配和指针有疑问。
我举个例子:
class Abc
{
public:
Abc() { q = new Qwe;}
Qwe* GetQwe() { return q; }
private:
Qwe* q;
};
Abc* a = new Abc();
Qwe* aux = a->GetQwe();
aux->Modify();
我不知道当我调用 GetQwe 时,它返回的是 q 值的拷贝,但不在与 q 相同的内存位置。
所以我的问题是,来自 Abc 的 q 会被修改吗?
最佳答案
So my question is, would the q from Abc be modified?
No q
本身不会被修改,GetQwe()
将返回指针的拷贝,该指针仍指向与 q
相同的内存位置, 但 q
和 aux
指向的对象是相同的,可以通过 Modify()
调用进行修改。此外,您还需要在调用其成员函数之前初始化 Abc::q
。
关于c++ - 复制和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16187973/