class String{
private:
char *m_data;
int length;
public:
String(const char *str)
{
if (!str)
{
length = 0;
m_data = new char[1];
*m_data = '\0';
}
else
{
length = strlen(str);
m_data = new char[length + 1];
strcpy(m_data, str);
}
}
String(const String &str)
{
length = strlen(str.m_data);
m_data = new char[length + 1];
strcpy(m_data, str.m_data);
printf("String::String( const String &str)\n");
}
};
int main()
{
String a("test");
String b(a);
return 0;
}
访问限制标号是针对类而不是针对一个类的不同对象,只要同属一个类就可以不用区分同一个类的不同对象。因为 是类的成员函数,所以有权限访问私有数据成员。如果是在main函数中直接,那肯定就会报错了,不能访问,因为这是在类外不能访问私有数据成员。一个类的成员函数可以访问这个类的私有数据成员,我们要理解这个对类的访问限制,而不是针对对象。