作者yzugsr (Bird)
看板Programming
標題Re: C++ overriding/overriding的問題
時間Wed Feb 13 17:09:38 2008
※ 引述《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
推 adrianshum:真的不知道還有 法一 那招 @.@ 202.155.236.82 02/13 19:19
推 linjack:我是不知道有方法二 ... XD cool... 61.231.48.223 02/13 20:31
→ yzugsr:方法二 其實大家應該都很常在child的 123.193.35.97 02/13 22:00
→ yzugsr:member function裡 呼叫Parent::foo()吧 123.193.35.97 02/13 22:00
→ yzugsr:其實就是this->Parent::foo() 123.193.35.97 02/13 22:01
→ yzugsr:也很以不在member function用 XD 123.193.35.97 02/13 22:01
→ yzugsr:方法一是Effective C++看來的 123.193.35.97 02/13 22:01
推 linjack:真的是第一次知道他可以在外部這樣用 203.72.57.78 02/13 22:25
→ linjack:感謝 ~~ 203.72.57.78 02/13 22:26