-1

在我正在处理的项目中,我有一个名为“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 执行相同的操作时,会遇到大量错误。

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

4

1 回答 1

1

您尝试对构造函数初始化列表:中的每个成员都使用 a 。您需要用 分隔初始化程序,如下所示: Camera::Camera():mCamera():mFrame(NULL, 0),

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

阅读一本好的 C++ 教科书可能也是一个好主意。

于 2013-01-21T16:15:49.780 回答