在派生类的成员函数中访问基类的成员时,需要使用类名加限定,如”BaseClass::v1″.
基类BaseClass和派生类DerivedClass中都声明了成员变量v1
派生类中的v1重定义了基类中的v1,他们的访问权限是不一样的。
派生类的成员函数既可以访问本类的v1,也可以访问从基类继承的v1.
例如在函数printv()中,即输出了本类v1也输出了基类v1的值。
#include <iostream> using namespace std; class BaseClass { public: int v1, v2;// 公有访问权限 BaseClass():v1(1),v2(1){} int temp1(){}//公有访问权限 }; class DerivedClass :public BaseClass { int v1;//改为私有访问权限 int temp1(){}//改为私有访问权限 public: DerivedClass():v1(10){} void printv() { cout << "v1=" << v1 << endl; //输出派生类中的值 v1 = 10 cout << "Base.v1=" << BaseClass::v1 << endl;//输出继承基类的值Base.v1=1 } }; int main() { BaseClass bc; DerivedClass dc; dc.printv(); // 调用派生类中的函数printv() return 0; //基类BaseClass和派生类DerivedClass中都声明了成员变量v1 //派生类中的v1重定义了基类中的v1,他们的访问权限是不一样的。 //派生类的成员函数既可以访问本类的v1,也可以访问从基类继承的v1. //例如在函数printv()中,即输出了本类v1也输出了基类v1的值。 //在派生类的成员函数中访问基类的成员时,需要使用类名加限定,如"BaseClass::v1". }