派生类改变基类中成员的访问权限

在派生类的成员函数中访问基类的成员时,需要使用类名加限定,如”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".
}

派生类改变基类中成员的访问权限

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
C++

P173-3-2 下面的程序实现复数的加法

2023-10-22 16:43:37

C++

继承关系的特殊性-派生类继承了友元函数

2023-10-22 18:30:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索