派生类的构造函数
来源:互联网 发布:ncut算法matlab 编辑:程序博客网 时间:2024/05/16 06:53
基类的构造函数不能被派生类继承,所以派生类必须自己要有自己的构造函数。那么派生类的构造函数有哪些需要注意的呢?
1.派生类的构造函数形式:
class A{public: A(参数列表){}};class B :public A{private:A a;public: B(参数列表):A(参数列表),a(参数列表){B的新添成员}<span style="font-family:Arial, Helvetica, sans-serif;">};</span>如上,派生类的构造函数B必须后跟“:”。然后是基类构造函数A,以及基类的对象成员。大括号里的内容才是派生类B新添的成员的初始化。该过程要实现派生类B向基类A的构造函数和对象成员a传递参数的功能,所以他们的参数均不带参数类型,即都为实参。
如果基类构造函数A本身不带参数,则不用传递参数,如果派生类也没有自己的新成员,则构造函数B也就没有参数。
2.派生类构造函数调用顺序:
先是调用基类的构造函数A,后是B对象成员a的构造函数,最后是派生类B自己的成员的初始化。
实现代码如下:
#include<iostream>using namespace std;class Student{ private: int num; string name; char sex; public: Student(int num_, string name_, char sex_) { num = num_; //cout << num << endl; name = name_ ; //cout << name << endl; sex = sex_; cout << sex << endl; cout << "基类的构造函数" << endl; } };class Student1: public Student{ private: string addr; string major; Student object_1; public: Student1(string addr_, string major_, int num_, string name_, char sex_, char sexobject_):Student(num_, name_, sex_), object_1(num_, name_, sexobject_) { addr = addr_; //cout << addr << endl; major = major_; // cout << major << endl; cout << "派生类新成员构造函数" << endl; }}; int main(){ Student1 object("北京", "计算机", 12120493, "chenjiayuan", 'M', 'W'); system("pause"); return 0; }
0 0
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 派生类的构造函数
- 算法分析学习笔记(一) - 动态连通性问题的并查集算法(上)
- 对于花屏的现象。
- syslog函数在内核中的原型
- △【OJ】(二)---C---分数类的四则运算
- Javascript实现秒杀倒计时(时间与服务器时间同步)
- 派生类的构造函数
- 黑马程序员---Java中的线程
- 两行代码搞定MFC清屏功能
- Java版 a+b poj 1000道题
- android读写sd卡
- 找最佳餐馆(multiarmed bandit problem)机器学习笔记1
- 【OJ】(二)---D---列排序
- Linux下查看磁盘使用率及文件和文件夹大小
- spring整合ibatis之使用配置文件和用annotation的简单说明