<分区>
我有 C1 类:
class C1 : public Print {
public:
C1(int p1, int p2, int p3);
};
我需要在结构 S1 中定义此类的一个实例:
struct S1{
C1 c1;
};
但是编译器说:
注意:“S1::S1()”被隐式删除,因为默认定义的格式不正确:...
错误:没有匹配函数来调用 'C1::C1() ...
candidate: C1::C1(int, int, int) 注意:candidate 需要 3 个参数,0 个提供
candidate: constexpr C1::C1(const C1&) class C1 : public Print { candidate expects 1 argument, 0 provided
当我编译这段代码时:
Struct S1{
C1 c1(1,1,1);
};
编译器说:
错误:在数字常量 C1 c1(1,1,1) 之前需要标识符;
错误:在数字常量之前需要“,”或“...”
我不需要调用C1类的构造函数,稍后再调用。我不能只删除 C1 代码中的这个构造函数,因为它是一个库。
当我定义全局变量时就可以了:
C1 c1(1,1,1);