如何使用C ++中的默认构造函数将char *设置为NULL?

时间:2016-03-13 20:00:57

标签: c++ pointers constructor

我正在尝试使用默认构造函数将此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;

2 个答案:

答案 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?