“ tedt”的离线定义

时间:2019-01-27 17:21:38

标签: c++ function

对不起,如果我的英语听不清,我是俄罗斯学生。

我有一个带有函数声明的类的代码:

Account.h

class Account {
public:
    Account();
    virtual ~Account() = 0;
    void tedt(const std::string &);
    Account(std::string);
}

Account.cpp:

#include "Account.h"
void Account::tedt(const std::string& a) <===== error here
{
    return;
}

Account::Account()
{
    Account(""); <==== some other error is here...
}


Account::Account(std::string input) <===== and here!!!
{
    SetLogin(input);
    SetProxy("");
}

我看到此消息:

error: out-of-line definition of 'tedt' does not match any declaration in 'Account'

结束

error: out-of-line definition of 'Account' does not match any declaration in 'Account' (about Account::Account(std::string input))

我不知道该怎么办。如果重要,我正在使用qt Creator进行编码

1 个答案:

答案 0 :(得分:2)

如前所述,您需要在类定义的右括号后加上分号。

还请注意,不带参数的构造函数将无法按预期工作。而是使用参数创建一个新的临时对象。这不会更改您的当前对象。更好地使用:

Account::Account() : Account("") {}

,可以正常工作。