c++ - 在 C++ 中定义对象而不调用其构造函数

标签 c++ class object constructor

在 C++ 中,我想将一个对象定义为这样的类的成员:

Object myObject;

但是这样做会尝试调用它的无参数构造函数,它不存在。但是,我需要在包含类完成一些初始化之后调用构造函数。像这样的。

class Program
{
public:
   Object myObject; //Should not try to call the constructor or do any initializing
   Program()
   {
      ...

      //Now call the constructor
      myObject = Object(...);
   }

}

最佳答案

存储指向 Object 的指针,而不是实际的 Object

因此:

class Program
{
public:
   Object* myObject; // Will not try to call the constructor or do any initializing
   Program()
   {
      //Do initialization
      myObject = new Object(...);  // Initialised now
   }

}

别忘了在析构函数中delete它。现代 C++ 可以帮助您,因为您可以使用 auto_ptr shared_ptr 而不是原始内存指针。

关于c++ - 在 C++ 中定义对象而不调用其构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557153/

相关文章:

数组循环中的 Javascript 对象

c++ - Qt 4.8.5中,QTimeLine中setPaused(true)之后setPaused(false)和resume()的区别

c++ - 构建依赖树

java - 使用CMD用Java文件编译Jar文件(供类使用)

Javascript 将数据从一个对象分配给另一个对象会添加重复项

sql - 获取存储在 RDBMS 中的对象树的最佳方法

c++ - 鼠标悬停时的 QScrollBar

c++ - 轻量级可移植 C++ 线程

Python - 如何让多重继承发挥作用?

php - 如何扩展另一个目录中的类?