基类和派生类
1、::和:
::后接成员函数或变量
:继承
类的构造函数不能继承,(即使继承了它的名字和派生类的名字也不一样,不能成为派生类的构造函数,更不能成为普通的成员函数)
Student::Student(char *name, int age, float score): People(name, age), m_score(score){ }
构造函数初始化列表以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号中的初始化式。
冒号后面是基类的东西
上面是错误的因为基类函数不能被继承
基类构造函数不能被继承,不能当作普通的成员函数来调用
换句话说,只能将基类构造函数的调用放在函数头部,不能放在函数体中。函数体中可以存放实参
Student::Student(char *name, int age, float score): People("小明", 16), m_score(score){ }
函数头部是对基类构造函数的调用,而不是声明,所以括号里的参数是实参,他们不但可以是派生类构造函数参数列表中的参数,还可以是局部变量、常量等。
析构函数也不能被继承