quasimodo
04/12/2007, 15:39
std::swap() sadece temel turlerlemi calisir? Bir String
sinifinin operato =() fonksiyonunu asagidaki gibi
iken;
void String::degisTokusYap (String & diger)
{
std::swap (boy_, diger.boy_);
std::swap (icerik_, diger.icerik_);
}
String & String::operator =(const String & str)
{
String gecici (str);
this->degisTokusYap (gecici);
return *this;
}
yerine
String & String::operator =(const String & str)
{
String gecici (str);
std::swap (*this, gecici);
return *this;
}
gibi neden yapamiyoruz? Yoksa ben std::swap() i yanlismi
anladim :(
Daha once new ile yer ayrilmamis pointer'i delete etmek
yasal miydi?
sinifinin operato =() fonksiyonunu asagidaki gibi
iken;
void String::degisTokusYap (String & diger)
{
std::swap (boy_, diger.boy_);
std::swap (icerik_, diger.icerik_);
}
String & String::operator =(const String & str)
{
String gecici (str);
this->degisTokusYap (gecici);
return *this;
}
yerine
String & String::operator =(const String & str)
{
String gecici (str);
std::swap (*this, gecici);
return *this;
}
gibi neden yapamiyoruz? Yoksa ben std::swap() i yanlismi
anladim :(
Daha once new ile yer ayrilmamis pointer'i delete etmek
yasal miydi?