错误C2514类没有构造函数.但确实如此
error C2514 class has no constructors. But it does?
我得到了:
错误1错误C2514:"EmployeeListNode":类没有构造函数
在ListOfEmployee.cpp 中
但在EmployeeListNode.h中,我有:
class EmployeeListNode
{
friend class ListOfEmployee;
public:
EmployeeListNode(string name, double salary); //A constructor no?
};
我不明白为什么它不承认这是一个构造函数。如果这是一个愚蠢的问题,我很抱歉,但我无法通过搜索找到答案。
编辑:ListOfEmployee中给出错误的部分:
void ListOfEmployee::insert(string nameIn, double salaryIn){
EmployeeListNode *n1 = new EmployeeListNode(nameIn, salaryIn);
EmployeeListNode* tn;
if (head){
head = n1;
}else{
for (tn = head; tn->next; tn = tn->next);
}
}编辑2:以及ListOfEmployee.h,以防它产生影响:
#pragma once
#include<string>
using namespace std;
class EmployeeListNode;
class ListOfEmployee
{
public:
ListOfEmployee();
void insert(string name, double salary);
void display();
void deleteMostRecent();
double getSalary(string name);
~ListOfEmployee();
private:
EmployeeListNode *head;
};
可以只转发声明的ListOfEmployeeNode
,而不在使用它的地方包含它的头(以及定义)。
在这种情况下,编译器知道类,但不能访问任何成员,包括构造函数。
如果您确实包含了标头,请检查您的包含防护装置。如果它们恰好在两个头文件中相同,则预处理器可以丢弃该定义
相关文章:
- "error: no matching function for call to"构造函数错误
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 选择要调用的构造函数
- 如何委托派生类使用其父构造函数?
- 构造函数正在调用一个使用当前类类型的函数
- 没有用于初始化C++中的变量模板的匹配构造函数
- 初始化具有非默认构造函数的std::数组项的更好方法
- 当从函数参数中的临时值调用复制构造函数时
- 在c++构造函数中使用随机字符串生成器
- 一对向量构造函数:初始值设定项列表与显式构造
- 从构造函数抛出异常时如何克服内存泄漏
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 具有默认模板类型的默认构造函数的类型推导
- 使用dynamic_cast和构造函数时出错
- 在c++中使用向量时,如何调用构造函数和析构函数
- 错误C2514类没有构造函数.但确实如此