假设我有一堂课
class C {
C(int a=10);
};
为什么我打电话
C c;
构造C(int =10)
函数被调用,如果我调用
C c();
调用默认构造函数?如何避免这种情况?我只想执行我的构造函数,我试图将默认构造函数设为私有,但它不起作用。
假设我有一堂课
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
函数