返回信息流#include <iostream>
using namespace std;
class A{
public:
virtual void fun(int number = 10) {
std::cout << "A::fun with number " << number << std::endl;
}
};
class B: public A{
public:
virtual void fun(int number = 20) {
std::cout << "B::fun with number " << number << std::endl;
}
};
int main() {
B b;
A &a = b;
a.fun();
return 0;
}
求问输出结果为什么是 B::Fun with number 10.
不明白number为啥是10!
@nuanyangyang @all求指点!
这是一条镜像帖。来源:北邮人论坛 / cpp / #81293同步于 2014/8/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于虚函数的默认参数问题
SparksFly
2014/8/5镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
非常感谢,15章还没看到!
【 在 moonfighting 的大作中提到: 】
: 通过基类的引用或指针调用虚函数时,默认参数为基类虚函数声明中指定的值 ---- 《C++ primer》 15.2.4 5
学习了
【 在 SparksFly (Sparks_Fly) 的大作中提到: 】
: [code=c]
: #include <iostream>
: using namespace std;
: ...................
虚函数表里面两个不同的函数呢。。。
动态联编不也是著名特性嘛?不能说只是为了方便?
【 在 nuanyangyang 的大作中提到: 】
: 那就是规定这样了吧。没什么特别的道理,有可能是觉得这样实现起来方便。