作者sorryChen (陈扬和)
看板Programming
标题Re: [问题] 请问Overriding 是否只能override父 Cl …
时间Sun Jun 17 11:16:53 2007
我试了一下 好像不行(虽然我的用法有点怪怪的 我用Visual C++.net)
Class C 继承 Class B 继承 Class A
Class A定义了function f1() f2()
f1()中会Call f2()
我现在在Class C中define 同名同参数的f2() 假设叫他f2'()
希望 在call C.A1()时 会自动Call f2'(); 而不是f2();
这样有可能吗 如果可以其实有点小危险 就是子class不小心Override
爷爷辈以上的同名程式... (可能不知道爷爷辈以上有什麽method..)
真是非常感谢版友们的回答阿 ..C++有Virtual..所以确定要下Virtual
才是真正Overrideing 而不是hiding.. 但是对於爷爷辈以上
好像还是不行..(我试的结果.. 应该友其他方法才是
※ 引述《horngsh (要公理要正义)》之铭言:
: ※ 引述《sorryChen (陈扬和)》之铭言:
: : 但爷爷层的好像不行 C++当中是不是没有Override的关键字阿
: : 所以我没办法让 子层的method把 "爷爷"层的overrides..
: : 这样的desgin不知道是否合理就是了
: 不好意思, 你问的是C++, 我以为是C#, 在C++中要覆写父层以上的方法
: 只要在衍生类别中用相同的签名加上方法定义即可
: (不用再加virtual, 除非你以後还要让再衍生的类别再覆写)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.125.87.33
1F:→ KKeiko:没有使用 pointer or reference 型别? 140.116.82.38 06/17 12:33
2F:推 horngsh:有空时我用C++.Net来小测一下. 59.126.181.10 06/17 14:23