继承和组合的分析
来源:互联网 发布:移动数据流量可以用吗 编辑:程序博客网 时间:2024/05/29 16:54
// test.cpp : 定义控制台应用程序的入口点。/*总结:继承就是隐含的将父类在派生类中再次定义,很像组合。添加保护、私有权限**无外乎为父类定义的“成员”添加了一个保护壳,相当于该父类成了私有或保护“成员”,**但组合无法修改类内部结构,但继承可以重写父类的方法,严格上说继承只是接口的复用*/#include "stdafx.h"#include <iostream>using namespace std;class X{int i;//私有protected:int a;//保护public://公有X(){i = 0;}void seti(int a){i = a;}int geti(){return i;}};class Y : protected X//保护继承,相当于定义了一个保护X成员{int i;//私有protected:int a;//保护public:Y(){};void seti(int a){X::seti(a);}//int geti(){return X::i;}//由于X的i是私有的只有自己能用int geta(){return X::a;}//由于X的a是保护的自己和孩子能用};class Z : private X//私有继承,相当于定义了一个私有X成员{public:Z(){};void seti(int a){X::seti(a);}//int geti(){return X::i;}//由于X的i是私有的只有自己能用int geta(){return X::a;}//由于X的i是保护的孩子也能用};class E //组合{public:E(){};private:X x;};int _tmain(int argc, _TCHAR* argv[]){X x;Y y;Z z;E e;//x大小为8,y大小为16,说明y包含xcout << sizeof(x) << "::" <<sizeof(y) << "::" <<sizeof(e)<< endl;//y.geti(); //实际使用的保护的x的geti方法//z.geti(); //实际使用的私有的x的geti方法//e.x.geti();//私有成员,这里和私有继承很相似吧system("pause");return 0;}
0 0
- 继承和组合的分析
- 继承和组合的内存结构异同分析
- 继承和组合的比较
- 继承和组合的比较
- 组合和继承的选择
- 继承和组合的区别
- 组合和继承的关系
- 接口的组合和继承
- java的组合和继承
- 类的继承和组合
- 类的继承和组合
- 类的组合和继承
- java的组合和继承
- java的继承和组合
- 继承和组合的区别
- 类的继承和组合
- 继承和组合的关系
- 继承和组合的运用 状态模式
- 原生AJAX写法
- 知识点查找索引
- C++的深拷贝与浅拷贝
- oracle 服务异常不能再本地计算机启动
- jquery 滑动到顶部效果
- 继承和组合的分析
- Cordys云开通服务开发者指南(一)
- PAT 1041. Be Unique
- BLE之CentralManager类介绍
- 路过一座城,那一汪深蓝,永远被深爱
- BZOJ 1861: [Zjoi2006]Book 书架
- OpenGL: 折线图和直方图
- Java 运算符
- mysql timestamp 默认值当前时间