String ....里面有些东西还是不清楚....
class String
{
public:
String ();
String(const char *str = NULL); // 普通构造函数
String & operator =(const char *str = NULL); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
void main()
{
String str(); //这一行是不会执行...不会调用String(const char *str = NULL); 吗???
String
}
#define NULL 0 #define NULL ((void*)0)
问题: 1. 为什么说
String ();
String(const char *str = NULL); // 普通构造函数
这二个是重复定义...
String() == String(void) 为什么会跟String(const char *str = NULL);重复定义?? void难道是一个char*型?
2..
String str(); //这一行是不会执行...不会调用String(const char *str = NULL); 吗???
3
String::String(const char* str)
{
if(NULL == str)
{
// 不能让新对象的m_data为NULL 为什么不直接使用m_data = NULL;如果这样用的话,会有什么后果??
m_data = new char[1];
*m_data = '\0';
}
else
{
int length = strlen(str);
m_data = new char[length + 1];
strcpy(m_data, str);
}
}