C++默认构造函数

来源:互联网 发布:烯牛数据 安卓 编辑:程序博客网 时间:2024/06/08 04:53

如果想创建对象,而不被显式的初始化,则必须定义一个不接受任何参数的默认构造函数。

如果没有写构造函数,C++将默认提供一个默认的构造函数:

mrgz(){}
可是,当我们自己有编写构造函数的时候,编译器就不会给我们提供上面这个默认的构造函数了。这时候,如果有必要,则需要我们自己显示的编写一个功能一样的构造函数~

如下两种情况都可以达到目的。

定义默认构造函数的方式有两种:

一种是给已有构造函数的所有参数提供默认值。

#include <iostream>using namespace std;class mrgz{public:mrgz(int a = 0, int b = 0){  x = a; y = b; }void show(){cout<<x<<","<<y<<endl;}private:int x;int y;};int main(){mrgz m;mrgz n(3,4);n.show();return 0;}

另一种方式是通过重载来定义另一个构造函数——一个没有参数的构造函数。

#include <iostream>using namespace std;class mrgz{public:mrgz(){ x = 0; y = 0;}void show(){cout<<x<<","<<y<<endl;}private:int x;int y;};int main(){mrgz m;mrgz n(3,4);n.show();return 0;}


0 0