C++:构造函数赋初值的几种形式

       构造函数用于类对象的初始化,没有返回值也不用写void,函数名与类名相同。构造函数可以有形参也可以无参,构造函数要写在类里边。语法:public: 类名(){ *** }。构造函数在创建对象(实例化)时会被调用且只有一次。因此构造函数经常用于给实例化对象赋初值。下面介绍几种构造函数赋初值的形式:
    一、无参构造函数():属性1(值1),属性2(值2){ 代码可写可不写 }; 实例化时初始值会自动赋到对象中。代码举例:

#include <iostream>
#include <string>
using namespace std;
class myClass
{
public:
	int val;
	string str;
	myClass():val(10),str("ABC")
	{  }
};
int main()
{
	myClass mc;
	cout << mc.val << "  " << mc.str << endl;
	system("pause");
	return 0;
}

实例化:myClass mc;

运行结果:
       10  ABC
        请按任意键继续. . .
        二、有参构造函数 (类型 变量1,类型 变量2): 属性1(变量1),属性2(变量2) {代码可写可不写};实例化时使用括号法赋值。代码举例:(部分代码)

class myClass
{
public:
	int val;
	string str;
	myClass(int val1,string str1):val(val1),str(str1)
	{  }
};

       实例化 myClass mc(20,"BCD");
       运行结果:
              20  BCD
              请按任意键继续. . .
        三、有参构造函数 (类型 变量1,类型 变量2){ 赋值代码必须写 };实例化时使用括号法赋值。代码举例:(部分代码)

class myClass
{
public:
	int val;
	string str;
	myClass(int val1,string str1)
	{
		val = val1;
		str = str1;
	}
};

       实例化: myClass mc(30,"CDE");
       运行结果:
             30  CDE
             请按任意键继续. . .
       四、有参构造函数 (类型 变量1=默认值1,类型 变量2=默认值2){赋值代码};实例化时使用括号法赋值,如不用括号法则使用默认值。代码举例:(部分代码)

class myClass
{
public:
	int val;
	string str;
	myClass(int val1=40,string str1="DEF")
	{
		val = val1;
		str = str1;
	}
};

      实例化 myClass mc;
      运行结果:
             40  DEF
             请按任意键继续. .
   总结以上几种形式,感觉最后一种使用起来最为方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值