《Primer》第4版 收藏
|
楼主 发表于: 2012-03-23 19:18:37
“基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同” 上面这句话我是在网上搜到的。 假定Derived继承Base,并且Base将下面的函数定义为虚函数,假定Derived打算定义自己的这个虚函数的版本,确定在Derived中哪个声明是错误的,并指出为什么错。 习题15.25的答案: 请问b 返回类型不同 更多 分享到: |
|
#1 回复于: 再好好看看书吧! |
|
#2 回复于: “基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同” 这句话本来就有问题··· |
|
#3 回复于: 如果你在看primer ,建议把p477再看一下···引用 2 楼 lanfeng_10 的回复:
|
|
#4 回复于: 修正下,应该是可以返回派生类对象的引用或指针
|
|
#5 回复于: 这几个问题还狠有点意思,错误的应该是a,d |
|
#6 回复于:
该回复于2012-03-26 08:55:34被版主删除
|
管理 |
#7 回复于: 引用 5 楼 qscool1987 的回复:
想问一下 effective c++第几个条款有提到静态绑定了 |
|
|
#8 回复于: PRIMER p502 AND P477 class Base class Derive:public Base int main() int foo() 因此派生类中的foo()并不是继承自基类的虚函数,而是把基类的虚函数给屏蔽了。P477说:如果派生类中没有重定义某个虚函数,则使用基类的版本,因此第二个动态绑定调用的是基类的虚函数版本。 因此可以这样引申:在派生类中重新定义基类中的虚函数就OK. class Base class Derive:public Base int foo()//和上面的虚函数构成重载 int main() |