Aşağıdaki kod sadece xxx satırının basılı olduğu (yani "pre concat" dan önce) bir segmentasyon hatası üretir.C++ Operator + string uzunluğunda Segmentasyon Hatası
cerr << "xxx + " << ((long long) timev);
string cname = "MyKey" + ((long long) timev);
string operator+(const string& str, long long nr) {
cerr << "Pre concat "; // << str << "$" << nr;
stringstream ss;
ss << str << nr;
cerr << "Post concat";
return ss.str();
}
Neden olursa olsun?
(Ben bu sorunun ne görebilirsiniz eğer ben sadece diğer modüllerle çatışma olasılığı olduğu gibi muhtemelen kötü bir fikir standart türlerinde operatörleri aşırı yükleme, bir yöntem kullanırlar. Ama lanet edecektir.)
'timev' beyanı nedir? – Maikel
std :: cout << "MyKey" + 2; 'çıkışlarına bakın. '' 'Yerine önceki satırda' + 'kullandıysanız bir sorunla karşılaşırdınız. – molbdnilo
Bir hata ayıklayıcı kullanmayı öğrenin. –