C++31:继承权限和访问
来源:互联网 发布:中兴联通网络机顶盒 编辑:程序博客网 时间:2024/06/05 01:55
这是C++比较基本的一个知识点,之前忘了写,现在补一下。
C++中包含三种权限控制:public,protected,private。我们一般称之为公有,保护,私有。
三种方式简单来说:
public 对内可以访问,对外可以访问,对于子类可以访问。
protected 对内可以访问,对外不可以访问,对于子类不可以访问。
private 对内可以访问,对外不可以访问,对于子类不可以访问。
public 继承: public--->public,protected---->protected,private--->private。
protected继承: public--->protected,protected---->protected,private--->private。
private继承: public--->private,protected---->private,private--->private。
其实更多的疑问是,如果类的继承意味着内存布局的拷贝,那么私有成员对于子类来说不可以访问,是不是意味着子类继承的时候,该项数据不存在呢?答案是否定的。我们简单写一段代码测试下:
#include <iostream>using namespace std;class A {public:int a;protected:int b;private:int c;};class B :public A{};class C :protected A{};class D :private A{};int main(){cout << sizeof(A) << "" << sizeof(B) << "" << sizeof(C) << "" << sizeof(D) << endl;return 0;}
结果全是:12
这也就说明继承的时候,把父类的内存结构给完全复制了过来。但是控制权限的变化以及子类访问权限的控制,应该是由编译器处理。结果就成了我们看到的样子,虽然私有的部分依旧存在,但是内存结构中就是不能访问。
阅读全文
0 0
- C++31:继承权限和访问
- 关于继承方式和访问权限
- 关于访问控制权限和继承方式
- java访问权限和继承性
- c++的访问权限和继承方式
- C++:【转】3种继承关系和3中访问权限
- 继承与访问权限
- 继承的访问权限
- 继承与访问权限
- 继承与访问权限
- 继承访问权限
- 【C++】:C++中的继承权限和继承方式
- public、protected和private访问权限以及继承问题
- c++三种继承机制和访问权限
- 多继承时的同种和多种访问权限
- 函数和数据的继承及访问权限
- java中类之间的继承和访问权限
- Notes: Java的访问权限、组合/继承和多态
- WebView与JavaScript交互
- php中ob缓存机制
- Cocos2d-x里面如何实现MVC(完)
- 将两张(多张图片)合成一张图片
- 【学习摘记】马士兵JDBC技术_课时15_JDBC处理可更新的结果集
- C++31:继承权限和访问
- mit分布式系统学习笔记01
- MyBatis Generator(MBG)Oracle使用说明 公共同义词 LONG数据类型
- 限制EditText输入字符
- MyEclipse2017 s1破解方法及文件
- 在windows中搭建spark单机版
- AES加密解密代码
- uva 11008 Antimatter Ray Clearcutting
- 常用数据类型对应字节数