美文网首页
C++ public protected private: 3

C++ public protected private: 3

作者: my_passion | 来源:发表于2020-03-14 22:29 被阅读0次

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

相关文章

网友评论

      本文标题:C++ public protected private: 3

      本文链接:https://www.haomeiwen.com/subject/raioshtx.html