我正在开发一个我的项目,当我为一个类创建构造函数时,我将一些变量设置为默认值。我设置了std::string
到NULL
,它给了我一个错误。但是,当我在同一行定义std::string
并将其设置为NULL
时,它可以正常运行。我想知道为什么
第一个例子
std::string text = NULL;
工作,
第二个例子
std::string text;
text = NULL;
没有工作。现在我知道你不应该将字符串设置为NULL或0,但我偶然发现了这一点。
第一个示例是否调用带有char*
的构造函数,并认为0是指向char的指针?我认为=
也称为构造函数,因此除非std::string
明确重载=
运算符,否则我不知道为什么它们都不起作用。
我使用的是Microsoft Visual Studio Express 2013
答案 0 :(得分:3)