先上代码: class Base{public:virtual int getVal(int i = 0){cout<<"基类函数"<<endl;return i;}};class Derived:public Base{public:int getVal(int i = 1){cout<<"派生类函数"<<endl;return i;}};int main(
这其实是一个作用域带来的问题:局部变量会掩盖同名的外围变量。注意,只要同名就会被掩盖,与类型无关: void main() { int a = 10;{double a = 0.1;cout<<a<<endl;//结果为0.1}cout<<a<<endl;//结果为10}而对于继承派生体系也是如此,因为派生类继承了基类的所有public部分,所以: class Base
1.前言 假设class D是由class B以public形式派生而来,class B定义有一个public成员函数mf,由于mf的参数和返回值都不重要,所以定义两者都为void。即: class B{public:void mf();...};class D:public B{...}; 2.实例分析 在这里,虽然我们对B和D及mf都一无所知,但面对一个类型为D的对象x:、 D x