我正在尝试使用默认构造函数将此char *设置为NULL。
但我遇到了麻烦。
问题在于我使用默认构造函数并设置m_name=NULL;
class Car {
char *m_name;
int m_carnum;
public:
Car() :m_carnum(0), m_name = NULL {} //this line has the error
~Car(){}
};
虽然这段代码似乎有效:
Car() :m_carnum(0) {
m_name = NULL;
}
所以我为什么不这样做?
m_name = NULL;
答案 0 :(得分:1)
像你的int一样实例化它。您还需要确保按声明的顺序实例化成员变量(请参阅Why should I initialize member variables in the order they're declared in?)
Car() : m_name(0), m_carnum(0)
{}
答案 1 :(得分:1)
鉴于您正在处理指针,如果使用C ++ 11及更高版本,以下可能是可取的(被认为是良好做法):
Car() : m_name(nullptr), m_carnum(0) {}
这里概述了这背后的原因(快速搜索的其他地方): What are the advantages of using nullptr?