您的位置:首页 > 编程语言 > C语言/C++

C++通过构造器,实现对象初始化的两种方法(重载、默认参数)

2017-08-17 21:00 459 查看
概述:在C++中,当类创建对象时,会自动调用构造器,来完成对类对象的初始化。特点如下

- 1 .在对象创建时自动调用,完成与初始化相关的工作。

- 2 .无返回值,与类名相同。

- 3 .可以重载,可用默认参数(不可同时使用)。

- 4 .若未提供任何构造器,默认存在一个无参的空构造器。

若提供,默认构造器则不再存在。

- 5 . 无论是重载还是默认参数,都要包含无参情况(标配);

为了实现对象的无参创建

class A
{
A()//默认构造器,无返回值与类名相同,创建对象自动调用
{
}
}


1.通过重载,实现类对象的初始化

例1.代码如下

#include<iostream>

using namespace std;

class  A
{
private:
int number;
public:     //重载
A()     //无参构造器
{
number=1;
}
A(int tem) //有参构造器
{
number =tem;
}
int Getnumber()
{
return number;
}

};
int main()
{
A a; //无参构造器的调用,实现无参构造对象
cout<<a.Getnumber()<<endl;
A b(100); //有参构造器的调用
cout<<b.Getnumber()<<endl;

return 0;
}




2、通过默认参数,实现类对象的初始化

#include<iostream>

using namespace std;

class  A
{
private:
int number;
public:
A(int tem=1) //使用默认参数初始化对象
:number(tem)//参数列表
{

}
int Getnumber()
{
return number;
}

};

int main()
{
A a; //实现了无参构造
cout<<a.Getnumber()<<endl;
A b(100); //有参构造器
cout<<b.Getnumber()<<endl;

return 0;
}




相比较而言,采用默认参数的方式实现类的对象的初始化比较好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息