2.C++类的访问权限:私有、保护、公有

本文详细解析了C++中类的三种访问权限:public、protected和private,并通过实例演示了这些关键字如何控制成员变量及函数在类内外的访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结论

关键字访问权限
public公共权限: 类内可以访问, 类外可以访问
private私有权限: 类内可以访问, 类外不可以访问(包括在子类内也不可以访问)
protected保护权限: 类内可以访问, 类外不可以访问(但在子类内可以访问)

代码

1.看是否都能在类内进行访问,类外能否进行访问

#include <iostream>

using namespace std;

class Test {
public:
	int publicMember;
	Test(int pub, int pro, int pri) {
		this->publicMember = pub;
		this->protectedMember = pro;
		this->privateMember = pri;
	}
	void showPublicMember() {
		cout << "public member:" << this->publicMember << endl;
	}
	void showProtectedMember() {
		cout << "protected member:" << this->protectedMember << endl;
	}
	void showPrivateMember() {
		cout << "private member:" << this->privateMember << endl;
	}
private:
	int privateMember;
protected:
	int protectedMember;
};

int main() {
	Test test(1, 2, 3);
	cout << "public member:" << test.publicMember << endl;
	test.showPublicMember();
	test.showProtectedMember();
	test.showPrivateMember();
	return 0;
}

结果如图:
在这里插入图片描述

可以看到,三个关键字public、protected、private声明的属性在类里面都可以使用,并且public关键字声明的属性在类外面也是可以访问的。并且如果我们将此处的protected和private关键字对应的属性放到类外面进行访问,发现是无法访问的。如下图所示。
在这里插入图片描述

2.看protected和private关键字是否能在子类中进行访问

那么现在还剩protected和private关键字是否能在子类中进行访问的问题了。
所以接下来写了一个Test的派生类,在派生类中直接访问三个关键字对应的属性,看能否访问成功。
在这里插入图片描述
可以看到除了private关键字下声明的成员privateMember不能在子类中访问以外,其它两个成员都是可以在子类中进行访问的。
这样的话就得到了文章开始的结论了,三个关键字对应的访问权限问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值