C++ 错误:在c+;中找不到初始化基类的类+;
子cktmgr从CPGENRICMANAGER和CPGENRICMANAGER从CPGENRICMANAGER获得授权。 请在下面找到层次结构C++ 错误:在c+;中找不到初始化基类的类+;,c++,C++,子cktmgr从CPGENRICMANAGER和CPGENRICMANAGER从CPGENRICMANAGER获得授权。 请在下面找到层次结构 //CPManager COnstructor cpManager(); cpManager(const cpManagerResource &m); cpManager(cpObjectNotify *p); cpManager(const cpManagerResource &m, cpObjectNotify *p); //
//CPManager COnstructor
cpManager();
cpManager(const cpManagerResource &m);
cpManager(cpObjectNotify *p);
cpManager(const cpManagerResource &m, cpObjectNotify *p);
//CpGenricManger Constructor
class cpGenericMgr: public cpManager{
public:
cpGenericMgr(const std::string& serviceName);
cpGenericMgr(const cpManagerResource &m,const std::string& serviceName);
cpGenericMgr(cpObjectNotify *p,const std::string& serviceName);
cpGenericMgr(const cpManagerResource &m,cpObjectNotify *p,
const std::string& serviceName);
// Destructor
virtual ~cpGenericMgr();
}
//Sb_cktmgr
SB_CktMgr::SB_CktMgr(const cpManagerResource &m, const String& svcName) :
cpGenericMgr(m, svcName){
cpUdata dsm(USER_DATA);
this->userData(dsm);
即使层次结构是正确的,我们仍然会得到以下错误。请有人提出建议
Error: Could not find cpGenericMgr::cpGenericMgr(const cpManagerResource, const String) to initialize base class.
您尚未定义构造函数:
cpGenericMgr::cpGenericMgr(const cpManagerResource&, const String&)
只有
定义了
将
String
转换为std::String
或使用const String&
定义一个构造函数是确切的编译器错误消息吗?您在答案中输入的错误几乎肯定不是您得到的确切错误。此外,您得到的错误几乎可以肯定地告诉您问题是什么。现在您已经解决了这个问题,以表示错误的实际状态:它告诉您没有cpGenericMgr
构造函数接受String
。没错,没有。所有cpGenericMgr
构造函数都采用std::string
。这是另一种类型;已声明并定义,为什么编译器无法找到该参数?@kara,因为您传递的参数不是类型std::string
,而是类型string
<代码>标准::字符串!=<代码>字符串
cpGenericMgr::cpGenericMgr(const cpManagerResource&, const std::string&)