关于构造函数的一些总结:
1:构造函数不需要用户自己去调用,而是会在创建类的实例的时候自动调用。(构造不能声明为私有的成员函数,如果构造函数被设为私有的成员函数,那么在创建类的实例的时候,在自动调用构造函数的过程中,因为构造函数已经被声明为私有的了,而私有的成员是不能再类外被访问的,就造成实例化对象失败)
2:构造函数的函数名必须与类名同名,且构造函数没有返回值;
3:构造函数也是函数,用户也可以根据自己的需要去定义构造函数的函数体。(在实际的使用过程中一般会用来初始化数据成员)
4:如果用户没有自定义构造函数,那么系统会自动提供一个默认构造函数,但是它的函数体是空的,不能起到初始化的作用;
5:构造函数也是函数,也可以进行重载.(1,参数个数不同;2:参数数据类型不同)
6:使用默认参数的构造函数,其中给定默认值的顺序应该是:在参数列表中从后往前给定默认值,并且中间不能有空缺,如果是从前往后指定默认值,就会产生参数传递过程的二义性;
7:使用初始化列表对数据成员进行初始化;其具体写法为:在函数头和函数体之间用冒号(:)引出来。
以一个例子来具体说明:
#include<iostream>
using namespace std;
class People //类名最好以大写字母开头命名
{
public:
People(int h, int w=100):heigh(h), weigth(w){} //构造函数被声明为公有的成员函数,采用初始化列表对数据成员进行初始化
//给定默认值的时候,要从参数列表的后面往前面给定默认值
private:
int heigh;
int weigth;
};
int main()
{
People p(100,50);
}