extern 的 C++ 问题 - undefined reference

标签 c++ qt extern

ma​​in.cpp:

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

登录窗口.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&)”的 undefined reference

  • 对“User::setName(std::string const&)”的 undefined reference

  • 对 `User::setPassword(std::string const&)' 的 undefined reference

我做错了什么?

最佳答案

很可能您没有在 loginwindow.cpp 中执行正确的#include。结果,编译器永远找不到正确的函数。

关于extern 的 C++ 问题 - undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16946832/

相关文章:

c++ - 错误 : LNK2019: unresolved external symbol in Qt

c - 如何在 R 中创建用于测试和生产环境的单个共享对象(C 语言)

c++ - 在 C++ 共享库的 header 中声明 'extern "C"' 有什么影响?

c++ - 如何设置 CvPoint 的值

c++ - 收缩数组函数给出断言错误

c++ - QML signal QT slot with QQuickView

c++ - extern 必须有权访问类构造函数吗?

c++ - 图像中的颜色还原不起作用

C++ OpenGL --- 函数 gluBuild2DMipmaps 的链接器错误

c++ - QSqlDatabase 没有看到表