c++类中继承时,virtual 关键字怎么用,例如:

2025-06-24 15:52:48
推荐回答(4个)
回答1:

已改,看注释
#include
using namespace std;
class A
{
public:
A(int a1)
{a=a1;}
int a;
};
class B:virtual public A
{
public:
B(int a1,int b1):A(a1)
{b=b1;}
int b;
};
class D:virtual public B
{
public:
D(int a1,int b1,int d1):B(a1,b1) ,A(a1) //这里也要把A类的构造函数写上
{d=d1; }//编译时指向这错,为什么?
int d;
};
void main()
{
D dd(1,2,3);
cout< cout< cout<}

回答2:

你是虚继承,那么他是不会调用基类构造函数的,顺便说一点,虚继承,几乎不用,一般情况构造函数最好不要弄成虚的,你虚继承的话,积累构造函数也是虚的了!这样生成对象时就不会调用基类构造函数了!

回答3:

构造函数不匹配!

回答4:

去看看虚基类。