自己以前的理解中Private是限制了类中数据的访问权限,在外部无法访问。今天阅读拷贝构造函数的时候看到了这样的例子:
class MyString {
private:
char* m_pData;
size_t m_iLen;
void _init_data(const char* s) {
m_pData = new char[m_iLen + 1];
memcpy(m_pData, s, m_iLen);
m_pData[m_iLen] = '\0';
}
public:
MyString() {
m_pData = nullptr;
m_iLen = 0;
}
MyString(const char* s) {
m_iLen = strlen(s);
_init_data(s);
}
MyString(const MyString& s)
{
m_iLen = s.m_iLen;
_init_data(s.m_pData);
std::cout << "Copy Constructor is called! source:" << s.m_pData << std::endl;
}
MyString& operator= (const MyString& s)
{
if (this != &s)
{
m_iLen = s.m_iLen;
_init_data(s.m_pData);
}
std::cout << "Copy Assignment is called! Source:" << s.m_pData << std::endl;
return *thi