得到标题
DuzaLiczba operator>(const DuzaLiczba& right) const;
string& getData();
virtual ~DuzaLiczba();
private:
string& data;
在我的类重载操作符中返回“\ 002 \ 994 \ 23923 \”
中的字符串return DuzaLiczba(wynik);
主要
cout << dl3.getData();
cout.flush();
cout.flush抛出分段失败。
课堂上的回归是在ascii? 而且还有问题。有什么建议吗?
答案 0 :(得分:1)
你不应该在班上有参考。您持有对局部变量的引用,该变量被破坏然后被访问导致分段错误。另外,运营商&gt;和运算符&lt;通常会返回布尔。
答案 1 :(得分:0)
class DuzaLiczba {
public:
DuzaLiczba(string& input);
DuzaLiczba(const DuzaLiczba& orig);
bool operator==(const DuzaLiczba &other) const;
bool operator!=(const DuzaLiczba &other) const;
DuzaLiczba operator+(const DuzaLiczba& right) const;
DuzaLiczba operator-(const DuzaLiczba& right) const;
DuzaLiczba operator<(const DuzaLiczba& right) const;
DuzaLiczba operator>(const DuzaLiczba& right) const;
string& getData();
virtual ~DuzaLiczba();
private:
string& data;
};
和==运算符
bool DuzaLiczba::operator==(const DuzaLiczba &other) const {
string liczba1 = this->data;
string liczba2 = right.data;
char index1 = liczba1.length();
char index2 = liczba2.length();
short k;
short o;
short f = 0; //przeniesienie
string wynik;
int sizefi = 0;
char temp;
int i = 0;
//"gupie" to C# RUUUULEEEZ
// http://www.youtube.com/watch?v=bXoc9hOIj3M hahahaa "D
if (liczba1.length() == liczba2.length()) { //najpierw dlugosc szybciej niz pokolei
for (i = 0; i < index1; i++) {
if (liczba1[i] == liczba2[i]) { //sprawdza kazdy element jesli sie rozni to false
wynik =
"TRUE";
} else {
wynik = "FALSE";
}
}
} else {
wynik = "FALSE";
}
return DuzaLiczba(wynik);
}
并重新调整数据
string& DuzaLiczba::getData() {
return data; //zwoloniony string
}
我想要返回一个字符串。 dl1 =“123089127312890372109371203971293012903” dl2 =“12837129037812903812903” 例如。 DuzaLiczba dl3(dl1 + dl2) 和cout它。
课堂内的代码做数学很棒。
或创建重载运算符“&lt;&lt;”。