在我正在研究的项目中,我有一个名为“Camera”的外部类,在这个类中,我想要实例化一个名为“Frame”的类定义的对象。 Frame类在它的私有部分中有这个:
private:
// No default ctor
Frame();
// No copy ctor
Frame( Frame& );
// No assignment operator
Frame& operator=( const Frame& );
因此,当我尝试实例化一个框架对象时,我收到一个错误,因为默认的构造函数是私有的。然而,在框架的公共部分,有这样的:
public:
Frame( char *pBuffer, int bufferSize );
这是我在Camera中实例化Frame时需要调用的构造函数。问题是我似乎无法弄清楚如何做到这一点。我在Camera类中遇到了同样的问题(默认构造函数在私有部分中),但我需要做的就是修复它:
Camera::Camera():mCamera(whatever params here){
//constructor stuff here
}
在实现文件中。但是,当我尝试为Camera类内部的Frame做同样的事情时,我会遇到大量错误。
那么如何从另一个对象的类中调用对象的特定构造函数呢?
答案 0 :(得分:1)
我猜测您尝试对constructor initialization list :
中的每个成员使用Camera::Camera():mCamera():mFrame(NULL, 0)
。您需要将初始值设定项与,
分开,如下所示:
Camera::Camera() : mCamera() , mFrame(NULL, 0)
阅读good C++ textbook也许是一个好主意。