- 博客(1)
- 收藏
- 关注
原创 c++默认实参详解
可以理解为在编译代码的时候,编译器并不知道我们利用了多态,它只会认为x的类型为base,然后在编译f()函数的时候,根据base的f()函数是有默认实参的,所以会先用10将实参这个位置填起来,如果后面用户自己制定了实参将10覆盖就行,所以出现了多态时子类函数可以得到父类虚函数默认参数的现象。可能会有疑问,不是虚函数的默认实参不能继承吗,而这段代码明显调用的是子类的函数,为何也能得到默认实参10呢,其实不是虚函数的子函数得到了默认实参,而是因为默认实参调用应该根据对象的静态类型确定。
2023-05-21 17:59:33
1016
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人