【发布时间】:2021-12-28 11:56:19
【问题描述】:
我知道这是非常基本的,但鉴于我的 C++ 使用非常有限,我不知道答案。
有人告诉我,每当一个类包含一个指针作为成员时,我应该为它分配内存。 (然后在析构函数中使用'delete'来释放空间)
class Person{
public:
string* ptr_name;
Person(string& name){
ptr_name = new string(name);
}
...
}
我在想我是否可以这样做
class Person{
public:
string* ptr_name;
Person(string name){
ptr_name = &name;
}
...
}
由于我没有在构造函数参数中使用“&”,因此“名称”在构造函数中按值复制。所以已经为它分配了内存。显式析构函数将是不必要的,因为指针将在堆栈上自动销毁。
这行得通吗?
【问题讨论】:
标签: c++ object pointers scope new-operator