我的C ++类正在寻找另一个对象的默认构造函数,抛出错误。
我正在研究一个简单的C ++旧版应用程序。 在一个类中,我正在其头文件中声明另一个类的对象。
在类构造函数中,我试图调用其参数化的构造函数。
但是我的程序显示以下错误,因为没有默认构造函数。
派生类头文件
#pragma once
#include "Base.h"
class CDerived :
public CBase
{
public:
// CDerived(); // Commented this out
CDerived(char a);
};
派生类源
#include "Derived.h"
// Only one constructor definition
CDerived::CDerived(char a)
: CBase(1,2,3)
{
}
我的执行类头文件
#pragma once
#include "Derived.h"
class CExecute
{
public:
CExecute();
private:
CDerived d;
};
我的Execute类源文件
#include "Execute.h"
CExecute::CExecute()
{
char rslt = SomeFunction();
d(rslt);
}
错误消息
为什么我选择调用参数化的构造函数时会出现此错误消息?
“标记重复”问题与初始化列表有关。 但是,我已经将初始化器列表用于派生类。所以我知道其工作原理。
我已经编辑了我的问题,以使其更加清楚。 基本上,如何为成员变量调用选择的构造函数?