【C++继承与派生之二】有子对象的派生类的构造函数
来源:互联网 发布:js给input的属性赋值 编辑:程序博客网 时间:2024/04/27 18:22
这是我今天看书刚刚看到的,觉着以前对这一块内容了解不多,所以整理一下分享给大家。首先要介绍一下子对象的概念。类的数据成员不仅可以是int、char这样的基本类型,也可以是类对象,如可以包含这样的数据成员:
Student s1; //Student是已经声明的类
这时s1就是类对象中的内嵌对象,即为子对象,这与结构体类型的成员可以是结构体变量类似。
回顾一下简单派生类构造函数的写法:
class student{public:student(int n,string nam,char s){num=n;name=nam;sex=s;}~student(){}protected:int num;string name;char sex;};class student1:public student{public:student1(int n,string nam,char s,int a,string ad):student(n,nam,s){age=a;addr=ad;}~student1(){}private:int age;string addr;};派生类一般构造函数格式为
派生类名 (总参数列表):基类名(参数列表){派生类新增数据成员初始化语句;}
子对象的派生类构造函数如何写呢?
我们都知道对象应该在建立之时就初始化,但显然子对象的初始化不能在声明派生类时就对它进行,因为类是抽象类型,只是一个模型,不能有具体的数据。所以子对象的初始化是在建立派生类时通过调用派生类构造函数来实现的。在刚才的例子中增加一个班长项,班长的类型很显然就是student,所以它是一个子对象,现在构造函数如下:
student1(int n,string nam,char s,int n1,string nam1,char s1,int a,string ad):student(n,nam,s),monitor(n1,nam1,s1){age=a;addr=ad;}
在上面构造函数中一共有八个参数,前三个是基类构造函数的参数,第4、5、6个参数是子对象构造函数参数,最后两个是用作派生类数据成员初始化的。
归纳一下,构造函数格式如下
派生类构造函数名(总参数列表):基类构造函数名(参数列表),子对象名(参数列表)
{派生类新增数据成员初始化语句}
- 【C++继承与派生之二】有子对象的派生类的构造函数
- 有子对象的派生类的构造函数
- 有子对象的派生类的构造函数
- 有子对象的派生类的构造函数
- C++有子对象的派生类的构造函数
- C++有子对象的派生类的构造函数
- 有子对象的派生类的构造函数
- 继承与派生:派生类的构造函数
- 继承与派生:虚基类及其派生类的构造函数
- 三十九、继承与派生:派生类的构造函数****
- 鸡啄米:C++编程入门系列之三十九(继承与派生:派生类的构造函数)
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
- 包含子对象的派生类的构造函数
- 包含子对象的派生类的构造函数
- 包含子对象的派生类的构造函数
- 继承与派生3:派生类的构造函数与析构函数
- 最大似然估计与meanshift
- C++ AMP: Hello C++ AMP!
- C语言菜鸟在使用KEIL4.7碰到的问题,无意中解决
- nfs:server is not responding, still trying
- 工具软件了解
- 【C++继承与派生之二】有子对象的派生类的构造函数
- 为 PHP 开发者准备的 12 个调试工具
- android中wifi原理及流程分析
- 音频编码方案之间音质比较(AAC,MP3,WMA等)
- 深入浅出CChart 每日一课——第四课 等高线图,白富美之第一个高级功能
- JS创建类和对象
- ZOJ题目分类
- Python 装饰器
- 游戏场景切换 TL-WR841N V8_120907标准版