我刚刚浏览了 Cprogramming.com 上的随机页面,并注意到了构造函数和析构函数教程/示例页面。他们使用了以下定义构造函数的方法:
class String
{
private:
char *str;
int size;
public:
String() : str(NULL), size(0) { } // <- This statement
String(int size) : str(NULL), size(size) { // <- And this one
str = new char[size];
}
}
this
我一直在使用带有魔术指针的构造函数的老式定义:
String() {
this->str = NULL;
this->size = 0;
}
String(int size) {
this->size = size;
this->str = new char[size];
}
除了明显更小的代码(更少的行数)之外,第一个声明有什么额外的好处吗?
PS:自从我上次用 C++ 写东西已经有好几年了。