即使有 0 个错误,Getter 似乎也会使程序崩溃
Getter seems to crash the program even with 0 errors
>im C++世界中的新手和一般编码,刚刚开始研究 getter 和 setter,并做了一个非常简单的练习来练习它们,构建似乎有 0 个错误和 2 个小警告,但是,当我尝试使用函数返回私有变量并打印它时,它只是使程序崩溃, 但是,如果我使用我制作的最后一个函数"getAccount(("它似乎工作得很好。
经过一番戳,似乎问题出在 getter 函数上,只是调用它们会使程序崩溃,这是代码:
主.cpp
#include <iostream>
#include "Person.h"
using namespace std;
int main()
{
User user;
user.setUser("someuser");
user.setPassw("somepassword");
cout << user.getPassw() << endl;
cout << user.getUser() << endl;
user.getAccount();
}
人.h
#define PERSON_H
#include <iostream>
using namespace std;
class User
{
private:
string username;
string password;
public:
string setUser(string usernm);
string setPassw(string pass);
string getUser();
string getPassw();
void getAccount();
};
#endif // PERSON_H
人.cpp
#include <iostream>
#include "Person.h"
using namespace std;
string User::setUser(string usernm){
usernm = username;
}
string User::setPassw(string pass){
pass = password;
}
string User::getUser(){
return username;
}
string User::getPassw(){
return password;
}
void User::getAccount(){
cout << "Account is:" << endl;
cout << "Username: " + username << endl;
cout << "Password: " + password << endl;
}
并非所有声明为返回值的函数实际上都返回值,因此您有未定义的行为,任何事情都可能发生。
例:
string User::setUser(string usernm){
usernm = username;
// should return a string here
}
string User::setPassw(string pass){
pass = password;
// should return a string here
}
除此之外,您还可以分配usernm
并pass
何时应分配username
和password
,以便 set 操作不会设置成员变量。
相关文章:
- 程序崩溃并显示"std::out_of_range"错误
- 试图创建流或fopen时程序崩溃
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 如何找出应用程序崩溃的原因 - Win 10 LTSB
- 操纵安卓相机的深度图导致应用程序崩溃
- 为什么当我尝试搜索双链表中第一个数据条目之外的数据时,程序崩溃了?
- DLL Made with CMake 使程序崩溃
- 程序崩溃使用boost::asio
- 调用 free() 有时会导致程序崩溃
- 邮件加密程序崩溃
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- 比较迭代器会使程序崩溃,而不会在自定义气泡排序实现中出现错误
- For 循环在尝试读取数组 c++ 时程序崩溃
- 即使有 0 个错误,Getter 似乎也会使程序崩溃
- Windows桌面程序保存您的计算机会话 - 基于程序崩溃时的恢复会话
- 无法访问的代码如何导致我的程序崩溃?
- 矢量迭代器在尝试调用函数时使我的程序崩溃
- QCompleter set模型使应用程序崩溃
- 使用唯一指针调用函数会使我的程序崩溃
- 删除SDL_PollEvent时程序崩溃