函数的缺省形参和构造函数的缺省形参

我们先看一个定义的带有缺省形参的函数: 

int add(int a=4,int b=5)
{
	return a+b;
}

我们在使用的时候,可以使用下面的方式:

cout<<add(1,2);
cout<<add(1);
cout<<add();

但是,如果我们使用下面的方式就不可以了:

cout<<add;

如果我们输出函数add的地址如下所示:

cout<<&add;

就可以看到,输出的结果和上面的结果是一样的。

所以,在使用缺省形参的函数的时候,我们如果没有传递一个参数的话,那么必须要在函数后面加一个“()”。

但是,对于构造函数的缺省形参,却不是这个样子。首先我们先看一个关于构造函数缺省形参的例子:

	Point(int x=0,int y=0)//一个点类的构造函数
	{
		this->x=x;
		this->y=y;
	}

我们在定义点类的时候,下面的例子是错误的:

 

Point a();

 

虽然我们的构造函数有自己的形参,但是定义变量和定义对象不一样,我们如果想使用缺省参数的话,我们必须不带“()”,也就是下面的定义方式:

 

Point a;

Pointa(1);

 

第二种方式和定义函数一样,给出一个参数,另一参数使用默认的参数。

所以在使用带有缺省构造函数创建对象的时候,如果我们想全部都不传递参数(构造函数的所有参数都是缺省的),那么我们不可以使用“()”。这是和函数的使用不同的地方。


 



  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值