头文件中定义的函数原型错误

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 为什么创建它。