C++构造函数设计原理

构造函数,我们通常看到的如下

1
2
3
4
5
6
7
8
9
Point(void){
x = 0.0;
y = 0.0;
}

Point(double xP, double yP){
x = xP;
y = yP;
}

与函数相比没有返回值部份(连void也没有),且与构造函数名与类名称相同。

函数名称与类名相同,每个对象都会初始化,可以由用户定义的函数初始化,也可以由系统编译器调用默认构造初始化。这就要求编译器必须总能知道调用哪个函数是构造函数,最简单也最符合逻辑的方式就是指定构造函数的名称与类名相同。
没有返回值,如果有返回值,则编译器必须知道如何处理返回值,这样会增加编译器的工作,降低效率。所以在定义构造函数时不能指定返回类型,即使void类型也不行。