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

  • Post author:
  • Post category:其他




结论

关键字 访问权限
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不能在子类中访问以外,其它两个成员都是可以在子类中进行访问的。

这样的话就得到了文章开始的结论了,三个关键字对应的访问权限问题。



版权声明:本文为qq_43847153原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。