Qt 创建器错误 - "Does not name a type"
Qt Creator error - "Does not name a type"
我是Qt Creator的新手,我正在尝试定义一个以向量作为其参数的数据库。我已经有了数据库的代码,这是我正在做的实例化对象。
public:
vector<CEmployee*> records;
CDatabase all_emps(records);
不过,我一直收到"记录不是一种类型"的错误,我不太明白为什么,因为我已将记录定义为其上方的向量。我尝试将记录更改为简单的矢量,但这会在代码中的其他地方产生其他错误。如果有人能指出我如何解决这个问题的方向,将不胜感激。提前感谢!
好吧,records
不是一个类型,它是一个成员变量的名称。你可能的意思是:
public:
// member variable declaration
std::vector<CEmployee*> records;
// method declaration, taking a vector of CEmployee* as an argument
CDatabase all_emps(std::vector<CEmployee*> records);
不过,我不知道为什么records
是一个公开可见的成员,因为它似乎是一个实现细节,以及为什么all_emps
返回一个CDatabase
。
也许这会更有意义:
private:
/// A database used to manage the data.
CDatabase m_db;
public:
/// Returns all employee records from the database.
std::vector<CEmployee*> all_employees();
-
确保某处有
#include <vector>
和using std::vector
,或者干脆使用std::
前缀。 -
不能在类定义中具有语法
CDatabase all_emps(records);
。它被视为成员函数声明,其中将参数类型指定为records
(参数名称不是必需的,返回类型为CDatabase
)。records
不是一种类型。
您有两种选择:
-
使用列表初始化:
Database all_emps{records};
-
使用构造函数和成员初始值设定项列表:
MyClass { vector<CEmployee*> records; CDatabase all_emps; public: MyClass(/* possibly vector<CEmployee*> const& records*/) : records(/* possibly records*/), all_emps(records) { } ... };
相关文章:
- 将系数存储在头文件的数组中("does not name a type"错误)
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- 如何解决"'mutex' in namespace 'std' does not name a type"?
- 在 C++ 中使用命名空间时出现"does not name a type"错误
- 已声明时"Does not name a type"错误
- 嵌套类"does not name a type"
- 为什么当我的代码超出函数范围时,"does not name a type"出现编译器错误?
- 无法分隔标头类。我得到"does not name a type"
- 修复第三方代码:"error: ‘enable_if’ in namespace ‘std’ does not name a template type"
- 什么原因导致我的"‘FatalError’ in namespace ‘Foam’ does not name a type"错误?
- 编译错误"String does not name a type"
- 如何修复" 'Function' does not name a type "?[阿杜伊诺]
- 类定义内部"error: 'a' does not name a type"
- "does not name a type" .但它确实如此
- 不知道为什么我会得到"error: does not name a type "
- 无法使用其他文件中的枚举:" does not name a type"错误
- 联合中的友元函数中出现错误"... does not name a type" - 为什么?如何解决?
- 编译代码期间"Does not name a type"编译错误
- C++类创建"does not name a type"(使用 Arduino 和颜色传感器)
- 'GLEWContext does not name a type' Ubuntu 上的错误