【2020.12.25】类成员的访问控制

类成员的访问控制

三种访问控制修饰符:

  • public // 公有成员
  • protected // 保护成员
  • private // 私有成员
  1. 对外提供的函数或者变量,定义为public,但不能随意改动。
  2. 可能会变动的函数或变量,定义为private,这样编译器会在使用时做检测。
  3. 只有结构体内部的函数才可以访问private的成员。
  4. public/private可以修饰函数也可以修饰变量。

private真的不能访问吗?

#include <iostream>

struct Test
{
private:
    int x;
public:
    int y;
    void Init(int x, int y)
    {
        this->x = x;
        this->y = y;
    }
};

int main()
{
    Test t;
    t.Init(1, 2);
    int *p = (int*)&t;
    int n = *p;
    int m = *(p + 1);
    printf("%d %d\n", n, m);

    return 0;
}

总结

private修饰的成员与普通的成员没有区别,只是编译器会做检测。

private修饰的成员只有自己的其他成员才能访问。

class与struct的区别

编译器默认class中的成员为private,而struct中的成员为public。

private中的成员是否被继承?

  1. 父类/基类中的私有成员是会被继承的。
  2. 只是编译器不允许直接进行访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值