C++ 构造过程

构造函数

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){

...

};

你可能感兴趣的:(C++ 构造过程)