本帖最后由 小菜鸟一枚 于 2020-3-6 08:37 编辑
[C++] 纯文本查看 复制代码 #include <iostream>
using namespace std;
class AB
{
public:
int b;
AB(int b)
{
this->b = b;
cout << "构造函数AB()执行了" <<endl;
}
~AB()
{
cout << "析构函数~AB()执行了" <<endl;
}
};
class AC
{
public:
int c;
AC(int c)
{
this->c = c;
cout << "构造函数AC()执行了" <<endl;
}
~AC()
{
cout << "析构函数~AC()执行了" <<endl;
}
};
//多继承派生类
class ABC :public AB,public AC
{
public:
ABC():AB(3),AC(4)//初始化列表
{
cout << "构造函数ABC()执行了" <<endl;
}
~ABC()
{
cout << "析构函数~ABC()执行了" <<endl;
}
};
int main(int argc,char *argv[])
{
ABC *pABC = new ABC();
delete pABC;
system("pause");
return 0;
}
报错信息:
d:\users\lenovo\documents\visual studio 2010\projects\demo03\demo03\main.cpp(38): error C2371: “ABC”: 重定义;不同的基类型
1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wingdi.h(2828) : 参见“ABC”的声明
说明:今天学到多继承,然后自己这样定义了两个类,想复习一下对象初始化列表的使用,然后两个基类定义了有参的构造函数,派生类继承这两个类,AB和AC两个
类没有默认的构造函数,我想到了初始化列表,然后编译就不通过了,请大家帮忙看看,谢谢! |