主.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&)'的未定义引用
未定义对'User::setName(std::string const&)'的引用
未定义对 `User::setPassword(std::string const&)' 的引用
我做错了什么?