在教材上看到一道題,這里明明應該呼叫類A中的帶引數的建構式的,但是最后輸出結果居然是不帶引數的建構式,希望大佬們給我這個萌新講解一下,謝謝~
#include <iostream>
using namespace std;
class A{
public:
A(int x) { cout<<"A constructor:"<<x<<endl; }
A() { cout<<"A constructor"<<endl; }
};
class B :virtual public A {
public:
B(int x, int y) : A(x){ cout<< "B constructor:"<<y<<endl; }
};
class c :virtual public A {
public:
c(int x, int y) : A(x){ cout<<"C constructor:"<<y<<endl; }
};
class D : public c, public B {
public:
D(int x, int y, int z, int w):B(x,y),c(x,z){cout<<"D constructor:"<<w<<endl;}
};
int main(){
D obj(1,2,3,4);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228166.html
標籤:新手樂園
上一篇:怎么弄
