类字符串setAstring(Astring){//code}中的函数无法使用set函数更改,程序崩溃

Function in a class string setAstring(Astring){//code} cannot change using set fuction, program crashes

本文关键字:函数 崩溃 程序 set Astring setAstring 字符串 code      更新时间:2023-10-16

所以我尝试使用get/set函数,但在使用set函数更改默认Astring时遇到问题。程序崩溃后,当我尝试运行这个:

#include <iostream>
#include <string>
using namespace std;
class Example{
private:
    string m_Astring;
public:
    Example()
    {
       m_Astring="123456789012";
    }

    string setAstring(string Astring){m_Astring=Astring;}
    string getAstring(){return m_Astring;}
};
int main(){
Example test;
test.setAstring("250687354221");
cout<<test.getAstring()<<endl;
return 0;
}

问题就在这里:

string setAstring(string Astring){m_Astring=Astring;}
^^^^^^                                              ^^^^
return a string                                  no return of string

您的程序崩溃是因为您从未从该函数返回任何内容,而这是未定义的。

(我怀疑崩溃是在销毁不存在的返回值时发生的,但我还没有证实这一点。)