C++ public protected private: 3
2020-03-14 本文已影响0人
my_passion
1 Base mem 在 Derived 中 属性
public 成员 + public/protected/private 继承
= public/protected/private成员
protected 成员 + public/protected/private 继承
= protected/protected/private成员
private 成员 + public/protected/private 继承
= private/private/private成员
2 类内: 通过 mem func 访问 mem
1 private mem data 不能单纯 用继承 思维分析
在 子类内:
(1) 只占内存
```
=> 从这点看, 可放 子类 private 区
```
(2) 但 不可直接访问
```
=> 从这点看, `不可放 子类 private 区`
```
2 public member function 能访问 private mem => 能访问 protected mem => 能访问 public mem
`public protected private 成员 的 访问权限 依次更严格`
=>
`若以 某方式 能访问到 更严格的, 则 以该方式, 必然也能访问到 次严格的`
=>
`逆否: 若以某个方式 访问不到 次严格的, 则 以该方式, 必然也访问不到 更严格的`
3 类外: 通过 class object 访问 class mem
只能
1 直接访问 public mem ( 继承/新增 )
2 调 public mem func 间接访问 private ( => protected => public ) mem ( 继承/新增 )
#include <iostream>
class Base
{
public:
Base() : x(1) { }
int getValue() const{ return x;}
private:
int x;
};
class Derived: public Base { };
int main()
{
Derived d;
std::cout << d.getValue() << std::endl;
return 0;
}
image
image