C++虚函数的陷阱
作者:网络转载 发布时间:[ 2015/9/28 11:08:41 ] 推荐标签:虚函数 测试开发技术
首先看一段代码:
1 class B
2 {
3 public:
4 virtual void fun(int i = 1)
5 {
6 std::cout << "base fun called, " << i;
7 };
8 };
9
10 class D : public B
11 {
12 private:
13 virtual void fun(int i = 2)
14 {
15 std::cout << "driver fun called, " << i;
16 };
17 };
如果进行如下操作:
B* p = new D();
p->fun();
会输出 driver fun called, 1
这里出现了两个问题:
(1)子类的虚函数即使被声明为私有函数,仍然被外部调用了。
(2)虚函数虽然是动态绑定的,但缺省的参数值确是静态绑定的。
这两点一定要注意啊!!
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11