请教下 string cons_name=NULL; 这句出错,发生了什么事?
就这句string cons_name=NULL 发生了哪些操作?重载 = 运算符的调用,类型转换,拷贝构造函数调用……,还有哪些?
赋空值为什么不行?
[解决办法]
string cons_name=NULL;
这个赋值发生在初始化,不会调用 operator =
而是调用相应的构造函数
跟这个一样
string cons_name(NULL);
根据匹配原则,找到构造函数
__CLR_OR_THIS_CALL basic_string(const _Elem *_Ptr)
: _Mybase()
{// construct from [_Ptr, <null> )
_Tidy();
assign(_Ptr); // 因为_Ptr 是 NULL 这里回出错
}
[解决办法]
string 这种东西没有必要负空吧
构造函数启动的时候,没有符值就是空
[解决办法]
string cons_name=NULL;
不知楼主使用这条语句是想达到什么目的,如果是想在声明string对象时使它为空,这种方法行不同,有以下两种方法可以实现:
1.声明时什么也不给它赋值,例如:string cons_name;
2.声明时赋空值,例如:string cons_name= " ";
注意第二种的引号中不能为空格,就是一个引号。楼主可以试一下这两种的效果是一样的
[解决办法]
请问星羽老大,那源码是怎么查到的?有什么快捷键吗?怎么定位到要找的地方?
=============================================================================
VC6,VC2005 右击你CPP文件中的#include <string> .就可以看到了
[解决办法]
指针才能指向NULL
string * cons_name=NULL