我正在尝试重载此类中的 << 运算符,但这是输出:
Hello,
Segmentation fault: 11
这是我的代码:
测试.cc:
#include <iostream>
#include "class.h"
#include <string>
using namespace std;
int main() {
MYString s("Hello");
MYString s2;
string hello = "Hello";
cout << s.text << ", " << s2.text << endl;
cout << "S: " << s << endl;
hello[0] = 'M';
cout << hello << endl;
return 0;
}
这是class.h:
#ifndef CLASS_H
#define CLASS_H
#include <string>
using namespace std;
class MYString {
public:
string text;
MYString(string data="") {
text = data;
}
friend ostream& operator << (ostream& os, const MYString& data) {
os << data;
return(os);
}
};
#endif
它编译得很好,但我不知道为什么它说“分段错误:11”。我也不知道那是什么意思。有人可以告诉我如何解决这个问题吗?而且我对 C++ 也很陌生
(而且我知道这段代码真的毫无意义,但我只是想学习一些东西并习惯 C++)