头文件中定义的函数原型错误
prototype error for function defined in the header file
我来到这个奇怪的地方error : prototype for ‘void Table::add(E)’ does not match any in class ‘Table’
。我知道这个错误是当函数没有在 class 主体中定义或者用错误的参数或 return 类型定义时,但这不是我的情况。
add
函数定义在头文件中。奇怪的是,当我评论其他功能(删除、打印)时,gcc 并没有抱怨。
这是我的代码:
table.hpp
class Table {
private:
public:
Table(int size=100);
Table(Table& t);
~Table();
void print();
void add(string name, string num);
void add(E e);
void remove(string name, string num);
string to_string();
/* some function definitions and operators */
};
table.cpp
void Table::add(E e){
if (size == nb_elem)
cout << "Error";
else
t[nb_elem++] = e;
}
void Table::add(string name, string num) {
E e(name, num);
this->add(e); //this->add(E(name, num);
}
备注
我正在学习C++语言。
在查看项目文件时,我找到了一个文件 table.hpp.ghc
,而我的问题正是这个 one。我通过删除此文件解决了我的问题。
我不知道 gcc 为什么创建它。
我来到这个奇怪的地方error : prototype for ‘void Table::add(E)’ does not match any in class ‘Table’
。我知道这个错误是当函数没有在 class 主体中定义或者用错误的参数或 return 类型定义时,但这不是我的情况。
add
函数定义在头文件中。奇怪的是,当我评论其他功能(删除、打印)时,gcc 并没有抱怨。
这是我的代码:
table.hpp
class Table {
private:
public:
Table(int size=100);
Table(Table& t);
~Table();
void print();
void add(string name, string num);
void add(E e);
void remove(string name, string num);
string to_string();
/* some function definitions and operators */
};
table.cpp
void Table::add(E e){
if (size == nb_elem)
cout << "Error";
else
t[nb_elem++] = e;
}
void Table::add(string name, string num) {
E e(name, num);
this->add(e); //this->add(E(name, num);
}
备注
我正在学习C++语言。
在查看项目文件时,我找到了一个文件 table.hpp.ghc
,而我的问题正是这个 one。我通过删除此文件解决了我的问题。
我不知道 gcc 为什么创建它。