Re: C++ overriding/overriding的問題

看板Programming作者 (Bird)時間18年前 (2008/02/13 17:09), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串6/8 (看更多)
※ 引述《adrianshum (Alien)》之銘言: : 從 Child 的角度看, 根本就不會再看見 foo(int). : 如果在 child class 想 invoke foo(int) 便會出問題 : Alien class Parent { public: void foo(int a) { cout<<"parent"<<a<<endl; } }; class Child : public Parent { public: using Parent::foo; //法一 void foo(int a, int b) { cout<<"child"<<a<<" "<<b<<endl; } }; void main() { Parent p; Child c; p.foo(1); c.foo(1,2); c.foo(3); // Parent::foo is no longer shadowed c.Parent::foo(4); //法二 如上面版友所說 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.99.126

02/13 19:19, , 1F
真的不知道還有 法一 那招 @.@
02/13 19:19, 1F

02/13 20:31, , 2F
我是不知道有方法二 ... XD cool...
02/13 20:31, 2F

02/13 22:00, , 3F
方法二 其實大家應該都很常在child的
02/13 22:00, 3F

02/13 22:00, , 4F
member function裡 呼叫Parent::foo()吧
02/13 22:00, 4F

02/13 22:01, , 5F
其實就是this->Parent::foo()
02/13 22:01, 5F

02/13 22:01, , 6F
也很以不在member function用 XD
02/13 22:01, 6F

02/13 22:01, , 7F
方法一是Effective C++看來的
02/13 22:01, 7F

02/13 22:25, , 8F
真的是第一次知道他可以在外部這樣用
02/13 22:25, 8F

02/13 22:26, , 9F
感謝 ~~
02/13 22:26, 9F
文章代碼(AID): #17ihFK8F (Programming)
文章代碼(AID): #17ihFK8F (Programming)