我来到了这个奇怪的error : prototype for ‘void Table::add(E)’ does not match any in class ‘Table’
。我知道这个错误是当函数没有在类体中定义或者用错误的参数或返回类型定义时,但这不是我的情况。
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 ++的语言。