【发布时间】:2013-01-21 16:02:23
【问题描述】:
在我正在处理的项目中,我有一个名为“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 执行相同的操作时,会遇到大量错误。
那么我该如何从另一个对象的类中调用一个对象的特定构造函数呢?
【问题讨论】:
-
你需要使用成员初始化器列表。
-
请出示sscce。
-
@AlokSave,关于最后一个代码示例(以及之后的文本)的某些内容表明它还有更多内容。
-
当我尝试对 Camera 类中的 Frame 做同样的事情时是什么意思?请显示示例代码。
-
您的问题不清楚:简单的答案是您的做法与为
mCamera所做的完全相同。但既然你在问,很明显Frame有一些棘手的问题。那么棘手的部分是什么?问题中似乎缺少它
标签: c++ object constructor