这是基本上为名为 的类实现 = 赋值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
包含对象的地址:这是正确的吗?