gpt4 book ai didi

c++ - 为什么我的复制构造函数不能使用新的调用并且具有相同的内存地址?

转载 作者:行者123 更新时间:2023-11-27 23:12:22 27 4
gpt4 key购买 nike

我可以使用带有 new 关键字的复制构造函数吗?我的代码还显示 2 个 obj 指针具有相同的内存地址?

#include <iostream>

using namespace std;

class Person{

public:

int age;

Person() { }
Person(const Person& p ) : age(p.age) { }

};
int main()
{

Person *p = new Person();
p->age = 15;

Person *y = p;

// Person *z = new Person(p); why no work???


// p and y have the same memory addres??
std::cout << p;
std::cout << y;

return 0;
}

最佳答案

Person *z = new Person(p); // why no work???

因为p是一个指针,而不是Person&。您需要取消引用它以获取对象:

Person *z = new Person(*p);
// ^^

关于c++ - 为什么我的复制构造函数不能使用新的调用并且具有相同的内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com