c++ - 对于由其他对象组成的 C++ 类,将这些成员对象设为指针是一种好习惯吗?

标签 c++ memory-management

我要问的是关于成员“mylist”的更好做法:

像这样声明我的列表:

class MyClaz {
  std::list<string> mylist;
  ...
}

或者这样声明:

class MyClaz {
  std::list<string> *mylst;
  MyClaz();
  ...
}

MyClaz::MyClaz() {
  myList = new std::list<string>();
}
// plus destructor to delete myList

在第一种情况下,mylist 会在创建 MyClaz 实例时自动分配吗?当 MyClaz 被销毁时,它会被正确清理吗?

是否有理由使用第二种情况?看起来更危险。

最佳答案

谨慎使用指针,仅在需要时使用。没有指针有很多优点,包括不必手动管理对象的生命周期和数据局部性。问题应该是是否有任何理由使用第二种情况...

关于c++ - 对于由其他对象组成的 C++ 类,将这些成员对象设为指针是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24498454/

相关文章:

c++ - 性能报告 (.vspx) 在 Visual Studio 2013 中未打开(显示损坏)

c++ - 将匿名函数 (lambda) 保存为函数类型变量

javascript - 动态加载/卸载外部JS

c++ - 打印出所有可能的定长单词

Python C++ float 学表示错误

android - 使用 Android 智能手机和其他设备进行服务发现

c - 结构数组 - C 中的内存释放

java - JVM 会垃圾收集内存中的孤立周期吗?

ios - 我应该在变量中使用 weak self 吗?

c - 如何使用 memcpy 交换两个对象的部分?