考点:构造函数、析构函数和赋值函数的编写方法
出现频率:☆☆☆☆☆
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); //普通构造函数
String(const String &other); //拷贝构造函数
~ String(void); //析构函数
String & operator =(const String &other); //赋值函数
private:
char *m_String; //私有成员,保存字符串
};
解析:
程序代码如下:
#include <iostream> using namespace std; class String { public: String(const char *str = NULL); //普通构造函数 String(const String &other); //拷贝构造函数 ~ String(void); //析构函数 String & operator =(const String &other); //赋值函数 private: char *m_String; //私有成员,保存字符串 }; String::~String(void) { cout << "Destructing"<< endl; if (m_String != NULL) //如果m_String不为NULL,释放堆内存 { delete [] m_String; m_String = NULL; //释放后置为NULL } } String::String(const char *str) { cout << "Construcing" << endl; if(str == NULL) //如果str为NULL,存空字符串"" { m_String = new char[1]; //分配一个字节 *m_String = '