Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

請問 Virtual class 要怎麼用

0 views
Skip to first unread message

Jack Yung

unread,
Oct 8, 2004, 12:09:49 AM10/8/04
to
以下在 BCB5 編譯過不了關,請高手指點

class Base
{
int data;
public:
Base(int D)
{
data = D;
}
};

class B1:virtual public Base
{
int data;
public:
B1(int D):Base(D)
{
data = D;
}
};

class B2:virtual public Base
{
int data;
public:
B2(int D):Base(D)
{
data = D;
}
};

class C:public B1,public B2
{
int data;
public:
C(int D):B1(D),B2(D) // 這裏會有錯誤 Cannot find default constructor to
// initialize base class 'Base'
{
data = D;
}
};


--
好康訊息!
Openfind 提供免費撥接電話:40508888
帳號:openfind 密碼:openfind
--
http://bbs.openfind.com.tw
※來源:218.171.*

Jack Yung

unread,
Oct 8, 2004, 2:21:43 AM10/8/04
to
※ 引述《alle...@bbs.csie.nctu.edu.tw (allex)》之銘言:
> 你的 C 繼承了 B1跟B2
> 但是 B1 跟 B2 分別繼承了 Base
> 雖然 B1跟B2都的ctor中都有指定如何呼叫Base的ctor
> 但是 C 的 ctor 卻只指定了如何呼叫 B1::B1(int) 以及 B2::B2(int)
> compiler無法判斷如該如何呼叫 Base 的 ctor
> 所以請在 C::C(int) 中指定呼叫 Base::Base(int)

原來 Virtual Class 須再指定呼叫,謝謝大大的指導


class C:public B1,public B2
{
int data;
public:

C(int D):Base(D),B1(D),B2(D) // Virtual Class 再呼叫一次

0 new messages