归纳c++类访问权限问题(private、protected、public)

C++中的类成员访问权限包括public、protected和private,public成员可被类内外所有对象访问,protected成员可被基类、子类和友元访问,private成员仅限类内和友元访问。此外,static成员可以在类外定义并可通过类名直接访问,静态成员函数不能访问非静态成员变量。了解更多详情,请参阅相关链接。
摘要由CSDN通过智能技术生成

C++类成员(成员数据和成员函数)的访问权限主要有三种,public(公有成员)、private(私有成员)和protected(保护型成员)。总体来说权限public>protected>private

1、private成员
private成员只能被类内的成员函数操作和被友元函数/类)(friend)访问。(友元是在该类中声明的可以访问该类私有成员和保护型成员的函数/类,具体见https://blog.csdn.net/zzyczzyc/article/details/87632702
类外对象不能直接访问类中的私有成员,只能通过共有的成员函数来访问。
例如:

class Base
{
public:
    Base();
    void test_pub();
private:
    void foo();
protected:
    int m;
};
int main(){
    Base *b = new Base();
    b->test_pub();  // 通过
    b->foo();   // 报错
    ...
    }

2、protected成员
protected成员能被基类中的成员函数和子类中的成员函数操作,和被友元(函数/类)访问。但不能被基类和子类的类外对象直接访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值