从另一个类中调用类的特定构造函数

时间:2013-01-21 16:02:24

标签: c++ object constructor

在我正在研究的项目中,我有一个名为“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做同样的事情时,我会遇到大量错误。

那么如何从另一个对象的类中调用对象的特定构造函数呢?

1 个答案:

答案 0 :(得分:1)

猜测您尝试对constructor initialization list :中的每个成员使用Camera::Camera():mCamera():mFrame(NULL, 0)。您需要将初始值设定项与,分开,如下所示:

Camera::Camera() : mCamera() , mFrame(NULL, 0)

阅读good C++ textbook也许是一个好主意。