C++的构造函数和默认构造函数

版权声明:版权所有 https://blog.csdn.net/weixin_43907422/article/details/89069622

C++的构造函数和默认构造函数

今天学习c++时突然感觉自己对构造函数和默认构造函数的区别有些分不清,于是查找了各大网站将资料汇总一下,供自己和其他朋友们参考。

构造函数是c++的类在构造对象时调用的函数,此函数没有返回类型。
默认构造函数是未提供显式初始值时用来构建对象的构造函数。

其实这个定义并没有告诉我们什么,真正想要搞懂还是要看代码,从代码的区别来体会他们两个之间的差异。

class A
{
private:
    int  _a;
    int _b;
public:
    A();                    // 默认构造函数
    A(int a, int b);        // 构造函数 
    A(int a = 10, int b = 2);    // 默认构造函数
};

其实如果我们没有提供任何构造函数,系统会自己帮我们加上一个默认构造函数,就像A() {};一样。当然,如你所见这个函数是空的,但是他却并不是一无是处,他的作用就是保证程序能够正确运行。

如果我们要自己定义一个默认构造函数,那我们有两种方法:
1.定义一个无参的构造函数(例如上面的A(); )
2.定义所有参数都有默认值的构造函数 (例如上面的 A(int a = 10, int b = 2); )

重点来了!切记一个类只能有一个默认构造函数!也就是说上面提到的两个方法你只能选其中的一种,不过我们大多数情况下还是选择第一种。

另外,如果我们已经定义了构造函数,则系统不会再给我们加上默认构造函数了,这也就要求我们最好自己将默认构造函数写上,防止出现未初始化的错误。

好了,本教程就到此结束啦,喜欢的小伙伴记得点赞哦,也欢迎志同道合的朋友们关注我和我一起交流。

2019年4月7日

猜你喜欢

转载自blog.csdn.net/weixin_43907422/article/details/89069622