Re: [問題] 關於物件導向觀念的問題
※ 引述《awes6380 (明智)》之銘言:
: 一個子類別C裡定義了一個跟父類別S裡名稱一樣的function f()
: 此時有一個物件o定義如下:
: C o=new C();
: S p=o;
: 此時p.f()和o.f()指的是同一個function,這種觀念稱為?
只是路過看到,我想或許題目的意思是:
S 是一個有完整定義的class
C 繼承 S , 並且override f
至於那段程式碼,指的只是類似下面這段code中,o和a的關係@@;;;;
(但是我想原來這段code應該是Java,
因為那個assign用c++可以做的骯髒事太多了XD)
不過說這題在選項前的那個敘述,目的應該是想把情況限制在override
如果沒有E的話,當然答案是很好選啦.
可是因為有E,反向思考的話,要讓p.f()跟o.f()指的是同一個function,
也不見得只有override這一種狀況.
(這是找老師討分數的講法.....XD)
#include <iostream>
using namespace std;
class A {public: virtual void foo() {cout << "a.foo" << endl;}};
class B : public A {public: void foo() {cout << "b.foo" << endl;}};
main() {
B* o = new B();
A* a = o;
A* aa = new A();
o->foo();
a->foo();
aa->foo();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.152.7
※ 編輯: Eventis 來自: 61.64.152.7 (04/01 07:57)
推
04/01 08:16, , 1F
04/01 08:16, 1F
→
04/02 02:30, , 2F
04/02 02:30, 2F
→
04/02 02:34, , 3F
04/02 02:34, 3F
討論串 (同標題文章)
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30