如果定义了同一类的两个对象,则一个对象分配给另一个对象。并且该类具有点成员变量。例如
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
的值)