[英]constructor with one default parameter
假设我有一堂课
class C {
C(int a=10);
};
为什么我打电话
C c;
构造C(int =10)
被调用,如果我调用
C c();
默认的构造函数叫做? 如何避免这种情况? 我只想执行我的构造函数,我试图将默认的构造函数设为私有,但这是行不通的。
C c();
应该被解析为函数声明 。 为了显式调用默认构造函数,您需要编写C c = C();
。 explicit
,以防止隐式转换在意外的时刻发生。 代码C c();
没有按照您的想法做:
它声明了一个名为c
的函数,该函数不带任何参数并返回C
相当于
C c(void);
这是因为c()
被解释为名为c
的函数。 C()
将触发C
类的适当构造函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.