STL自帶的swap方法有什麼問題?

weixin_34249678發表於2018-06-04
template<typename T>
void swap(T& a,T& b)
{
T temp(a);
a = b;
b = temp;
}

涉及到指標的時候:

兩個類指標會共享一個空間,如果中間銷燬了其中的一個指標所指向的記憶體物件,則另一個物件的指標會變成野指標,觸發錯誤。


4559317-f2e9cfcec375e6ed.png
image.png

解決方案:

myclass& operator=(const myclass& mc)
{
val = mc.val;
letter = new char[strlen(mc.letter)+1];
strcpy(letter,mc.letter);
return *this;
}

相關文章