→ LPH66: 這是 "IS-A" 的觀念: B "IS-A" A (B "是一個" A) 09/10 20:01
→ LPH66: 所以參數指定 A 我可以丟一個 B 進去 09/10 20:01
→ LPH66: 但 A "IS-NOT-A" B (A "不是一個" B) 09/10 20:02
→ LPH66: 所以參數指定 B 丟一個 A 進去當然會拒絕 09/10 20:02
那不好意思能在請問一下大大為什麼下面這段就沒有這個問題呢?
class A {
private:
int nVal;
public:
void Fun()
{ cout << "A::Fun" << endl; }
void Do()
{ cout << "A::Do" << endl; }
};
class B:public A {
public:
virtual void Do()
{ cout << "B::Do" << endl; }
};
class C:public B {
public:
void Do( )
{ cout << "C::Do" <<endl; }
void Fun()
{ cout << "C::Fun" << endl; }
};
void Call(
B &p
) {
p.Fun(); p.Do();
}
int main() {
C c; Call(c);
return 0;
}
※ 編輯: dinex (60.245.65.181), 09/11/2015 14:46:24
→ a27417332: 瞭解繼承嗎?先查查看資料思考一下,感覺你概念不清楚 09/11 14:51
發現自己耍笨了==謝謝大家幫忙
※ 編輯: dinex (1.160.88.39), 09/13/2015 16:48:58