C++规定:如果一个类没有提供任何的构造函数,C++会默认提供一个不带参数的构造函数,构造函数只负责创建对象,而不做任何的初始化工作。
C++又规定:只要一个类定义了一个构造函数,不管这个构造函数是有参数还是无参数,编译器就不会再默认提供构造函数了,也就是说:如果一个自定义类中,写一个带参数构造函数时,还想要用无参构造函数就必须自己定义。
上两章的内容可以说都是围绕C++提供默认的构造函数来创建对象的,这章就看看构造函数到底如何实现,而为了强调唯一性,构造函数都与类名相同,代码如下:
Father.h:
class Father
{
//公共的行为或者属性(变量)
public:
Father(); //自定义的构造函数
~Father(); //析构函数
//受保护的行为或者属性(变量)
protected:
//私有的行为胡总和属性(变量)
private:
};
Father.cpp:
#include "Father.h"
#include <iostream> //标准库输入、输出
using namespace std; //使用所有的std::函数 命名空间
//自定义的构造函数
Father::Father()
{
}
//析构函数
Father::~Father()
{
}
主入口函数(类的使用.cpp):
int main()
{
Father father;
system("pause"); //暂缓功能,能让界面停留的功能
return 0;
}
对于Father这个类的对象father而言,小编没让它作任何初始化的工作,就跟C++提供的默认无参构造函数一样。
为了能明显的看出规律,可以在自定义构造函数内添加一句输出语句:
//自定义的构造函数
Father::Father()
{
cout << "Father 构造函数。" << endl;
}
输出的结果如下: