读书人

这种情况下调用的是父类的变量还是子类

发布时间: 2012-05-24 11:55:41 作者: rapoo

这种情况下调用的是父类的变量还是子类的变量?
如果父类有一个函数,并且调用它的一个变量:
class A
{
public:
int xx;
int fun(int xx)
{
cout << xx;
return 0;
}
}

子类定义了一个同名的变量(应该是覆盖了父类的同名变量)
class B:public A
{
int xx;
}

那么以子类对象名调用函数fun,那么使用的子类的变量xx?还是父类的变量xx?
B b;
b.fun;


[解决办法]
调用的是子类的变量,对于覆盖成员,无论父类fun是否声明为virtual,使用子类调用函数访问的都是子类的成员,要访问父类被覆盖的成员,需加上父类名称,如A::xx

读书人网 >C++

热点推荐