という名前のクラスの = 割り当てを基本的に実装するCMyStringコードは次のとおりです。コードは正しいです。
CMyString& CMyString::operator =(const CMyString &str) {
if(this == &str)
return *this;
delete []m_pData;
m_pData = NULL;
m_pData = new char[strlen(str.m_pData) + 1];
strcpy(m_pData, str.m_pData);
return *this;
}
インスタンスは参照によって渡され、最初の「if」は、渡されたインスタンスがそれ自体であるかどうかをチェックしています。私の質問は、なぜインスタンスのアドレスが含まれて&strいないのに、比較に使用するのですか? strこの行がどのように機能するかを説明できる人はいますか?
また、オブジェクトのアドレスが含まれていることを確認したいだけですthis:これは正しいですか?