继承中的对象模型
来源:互联网 发布:slf4j 输出sql 编辑:程序博客网 时间:2024/05/17 04:43
类在C++编译器的内部可以理解为结构体
子类是由父类成员叠加子类新成员得到的
问题:如何初始化父类成员?父类与子类的构造函数有什么关系
1、 在子类对象构造时,需要调用父类构造函数对其继承得来的成员进行初始化
2、 在子类对象析构时,需要调用父类析构函数对其继承得来的成员进行清理
//继承中的构造析构调用原则
// 构造函数执行顺序:
//1:先执行父类的构造函数
//2:再执行子类的构造函数
//析构函数执行顺序
//1:先执行子类析构函数
//2:再执行父类析构函数
函数如何调用呢?
Child(int a,int b,int c) : Parent(a,b)
#include<iostream>using namespace std;//继承中的构造析构调用原则 // 构造函数执行顺序://1:先执行父类的构造函数//2:再执行子类的构造函数//析构函数执行顺序//1:先执行子类析构函数//2:再执行父类析构函数//子类构造函数应该变化的地方//Child(int a,int b,int c) : Parent(a,b)/* 继承中的构造析构调用原则 1、子类对象在创建时会首先调用父类的构造函数2、父类构造函数执行结束后,执行子类的构造函数3、当父类的构造函数有参数时,需要在子类的初始化列表中显示调用4、析构函数调用的先后顺序与构造函数相反*/class Parent{public:Parent(int a,int b){this->a = a;this->b = b;cout<<"父类构造函数"<<endl;}~Parent(){cout<<"父类析造函数"<<endl;}void printP(int a,int b){this->a = a;this->b = b;cout<<"我是爹"<<endl;}protected:private:int a;int b;};class Child :public Parent{public://变化的地方Child(int a,int b,int c) : Parent(a,b) {this->c = c;cout<<"子类构造函数"<<endl;}~Child(){cout<<"子类析造函数"<<endl;}void printC(){cout<<"我是儿子"<<endl;}protected:private:int c;};void playObj(){Child c1(1,2,3);}int main(){/*Parent p(1,2);*/ playObj();system("pause");return 0;}
0 0
- 继承中的对象模型
- 继承中的对象模型
- C++ 继承中的对象模型
- C++虚拟继承中的对象模型
- 继承&对象模型
- Cpp_继承&对象模型
- 【C++】虚函数在不同继承方式中的对象模型
- 多重继承的对象模型
- C++虚继承对象模型
- C++对象模型-----多继承
- C++对象模型----重复继承
- C++继承内存对象模型
- C++虚继承对象模型
- C++继承内存对象模型
- 继承的对象模型整理
- 探究菱形继承对象模型
- c++对象模型学习心得(初步继承模型)
- 面向对象中的继承
- Android又一重磅利器—Lottie安卓开源动画库介绍和使用
- 编程英语中英文对照
- 如何安装WebLogic
- ssm框架的搭建流程
- bootstrap学习笔记
- 继承中的对象模型
- 【NOI2000T4】单词查找树-trie树
- 支付宝手机网站支付接口集成的经验小结
- The Knapsack problem Gym
- otsu自适应阈值分割的算法描述和opencv实现,及其在肤色检测中的应用
- SPOJ-Grid ,水广搜easy bfs
- 如何在Eclipse上配置WebLogic Server
- WPF UI线程安全性
- Retrofit全攻略——进阶篇