构造函数
C++中每个类必须有一个构造函数,如果用户没有自行编写构造函数,则C++会自动提供一个无参数的构造函数,如果用户编写了构造函数,则默认的构造函数会自动消失
C++中的构造函数应该是一个公有的成员函数,并且构造函数没有返回类型;
若对构造函数进行重载,更改了默认的参数的个数,则按照排序原则,自定义的参数排在默认的参数后面,比如说
Class A中的默认的构造函数是A(int a=10,int b=10,int c=10);
若对默认构造函数进行重载,A(int d),则类的前两个成员变量还是等于10,第三个成员被初始化为d了。具体代码实现请参看构造函数重载。
初始化
假想类A 中的数据成员含有类B,对类A初始化时类B是调用默认的构造函数,如何在类A初始化的同时也让B按照用户自定义的方式初始化?
这里就要搬来构造函数的调用表,该调用表可以省略类型声明,但却行创建对象之值。
class StudentID{
int value;
}
public:
StudentID(int id=0){
value=id;
}
};
class Student{
string name;
StudentID id;
public:
Student( string name="no name",int ssID=0):id(ssID){
...
};