对于如何在超类上不使用默认构造函数进行对象初始化,我有疑问。B(std::string title, int xpos, int ypos) : m_pA(title, xpos, ypos) //does nothing yet. 如您所见,我正试图在B的构造函数中初始化A类型的A对象,VC正在抛出我:
"m_pA" is not
如何在堆上创建数组,并在构造时从另一个数组初始化它?copy = new T[myOriginalArraySize]; // copy data from myOriginalArray here too}
我可以创建数组,然后使用std::copy,但是这需要数组内容有一个空的构造函数。您可以假设对象有一个复制和移动构造函数</em
构造C类型对象的以下调用调用默认构造函数,并使用该默认构造函数初始化成员(同样,复制来自Martin York的答案的代码和注释):
C c = C(); // Zero initialize我以前使用过初始化POD类型,但我没有意识到C c;不会调用POD类型的默认构造函数。他的回答满足了这个问题,但是我想具体地知道什么是在声明后一个非默认构造的c对象</e