声明如下:
需要注意的是const的使用,在Effective C++中的第三条款就是:尽量使用const。也就是可以使用的地方尽量使用const,在这里就是这样,加入了const之后对于程序的健壮性有了提高。
接下来是函数的实现:
- 构造函数: 需要注意的地方时str需要判断null
- 拷贝构造函数: 这里也最好判断下null,其他没有什么问题,这里我一开始以为other.m_data是不能取的,试验了才知道是可以的,看起来连private都还不清楚啊。
- 析构函数: 删除数组的方式不要忘记了
- 赋值函数: 其中检查自赋值非常重要,其他就是在赋值之前要先释放之前的空间。
这么简单的东西却让我搞的很头疼,学过的东西还是忘的太多了。