获得预期 C++ 中的类型说明符错误
Getting Expected a type specifier error in c++
我有一对碱基派生类(IND
=MA
的基数,MA
= 派生自IND
;ST
=ST1
的基数,ST1
= 派生自ST
) 和另一个类 (FD
)。我正在尝试像这样使用它们:
class ST1: public ST{
public:
FD f;
ST1(){};
ST1(FD& a) : f(a) {};
MA abc(f, 10);
};
我得到的错误:
E0757 member "ST1::f" is not a type name
E0079 expected a type specifier
C2061 identifier 'f'
所有错误都在MA abc(f, 10);
行上。
请注意,MA
没有默认构造函数,接受FD&, int
参数,IND
是一个纯虚拟类。
MA abc(f, 10);
编译器看起来像一个成员函数声明,因此出现错误消息 - 它期望f
和10
是类型的名称。
对于内联成员变量初始化,必须使用大括号:
MA abc {f, 10};
但这对您没有多大用处,因为这会在您初始化它之前使用f
。
(内联初始化在任何构造函数初始化之前执行;在类定义中编写它们的顺序无关紧要。
将其初始化移动到初始化器列表:
ST1() : abc(f,10) {}
ST1(FD& a) : f(a), abc(f,10) {};
并将声明保留为
MA abc;
相关文章:
- 缺少类型说明符,显式类型为"缺少错误"
- 与 tesseract::TessBaseApi() 相关的 Tesseract-OCR 出错(预期的类型说明符)
- 为什么转换函数声明不需要至少一个定义类型说明符
- C++需要所有声明的类型说明符和预期的非限定 id(需要调试帮助)
- printf 数据类型说明符复杂问题
- C++错误:"class name"之前的预期类型说明符
- 缺少类型说明符和另一个问题
- 缺少类型说明符 - 假定为 int.注意 c++ 不支持 default-int
- 错误:C4430:缺少类型说明符-假定为int.注意:C++不支持default-int
- 在C++中出现错误之前,无效使用了不完整的类型和所需的类型说明符
- 缺少类型说明符 - int 假定 声明静态成员后出错
- 不能在类型说明符中定义联合
- 没有带有字符串数组的存储类或类型说明符
- 警告:函数使用不带尾随返回类型的'auto'类型说明符
- 仅为某些模板专用化定义转换运算符:预期类型/预期类型说明符
- 在 C++ 中出现unique_ptr错误之前的预期类型说明符
- 有没有办法将类型说明符存储在变量中
- C 期望类对象的类型说明符
- 是无符号的int"简单类型说明符"
- 在 vscode 上编译错误.类型说明符是 C++11 扩展