簡體   English   中英

C ++外部問題-未定義參考

[英]C++ trouble with extern - undefined reference

main.cpp:

bool lgstatus;
User currentUser;
//...
int main(){ //... }

loginwindow.cpp:

void LoginWindow::on_cmdCreate_clicked()
{
  extern bool lgstatus;
  extern User currentUser;
  //...
  currentUser.setMail(ui->txtAccountMail->text().toStdString());
  currentUser.setName(ui->txtAccountName->text().toStdString());
  currentUser.setPassword(ui->txtAccountPassword->text().toStdString());
  //...
  lgstatus = true;
}

我班的User有3個功能。 他們每個人都接受一個字符串作為參數。 我不知道怎么了 如果我更改lgstatus但是我的currenUser ,編譯器不會抱怨。

類:

class User
{
public:
    User();
    User(const std::string &name, const std::string &password);
    User(const std::string &name, const std::string &password, const std::string &mail);

    void setName(const std::string &name);
    void setMail(const std::string &mail);
    void setPassword(const std::string &password);

private:
    std::string user_name;
    std::string user_password;
    std::string user_mail;
};

“ set”函數只是將其參數傳遞給user_name等。我認為也不必顯示它們。

錯誤:

  • 未定義對'User :: setMail(std :: string const&)的引用

  • 未定義對'User :: setName(std :: string const&)的引用

  • 未定義對“ User :: setPassword(std :: string const&)”的引用

我做錯了什么?

您很有可能沒有在loginwindow.cpp中執行正確的#include。 結果,編譯器永遠找不到正確的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM