将一个对象分配给另一个对象时的点成员变量的值



如果定义了同一类的两个对象,则一个对象分配给另一个对象。并且该类具有点成员变量。例如

class A{
private:
int *a;
public:
A(int x):a(&x){};
};
int main()
{
int x = 2;
A v_(x);
A W_(v_);
return 0;
}

那么,如果v_中的a指向与w_中的a相同的地址? 如果有人可以帮助我,谢谢。

简短的回答:是的,它们都指向同一个地址。 Godbolt(使用%p打印指针地址)

原因是调用了A的默认复制构造函数,并将所有成员值复制到新对象(这包括包含地址的a的值)

相关内容

最新更新