C++ 为什么可以';ti从常量字符串返回NULL&;方法?
我有以下方法声明:C++ 为什么可以';ti从常量字符串返回NULL&;方法?,c++,constants,C++,Constants,我有以下方法声明: const String和MyClass::GetAspect(const String和strKey)const 在这个方法中,我们决定在做一些事情之前进行空指针检查;如果这个方法中的指针是null,我们只想返回null 但是,我得到以下错误: myclass.cpp(222) : error C2440: 'return' : cannot convert from 'int' to 'const String &' Reason: cannot
const String和MyClass::GetAspect(const String和strKey)const
在这个方法中,我们决定在做一些事情之前进行空指针检查;如果这个方法中的指针是null
,我们只想返回null
但是,我得到以下错误:
myclass.cpp(222) : error C2440: 'return' : cannot convert from 'int' to 'const String &'
Reason: cannot convert from 'int' to 'const String'
No constructor could take the source type, or constructor overload resolution was ambiguous
有人能帮我理解吗?这里是否有我不完全理解的常量正确性概念?
NULL
不是类型为const String
的对象,因此当需要引用const String
时,当然不能返回它。事实上,引用的一个主要优点是它们不能(永远)为NULL
重新定义函数以返回
常量字符串*
,或返回空字符串空
不是类型为常量字符串
的对象,因此当需要引用常量字符串
时,当然不能返回它。事实上,引用的一个主要优点是它们不能(永远)为NULL
重新定义函数以返回常量字符串*
,或返回空字符串NULL是指针(或者从技术上讲,整数值零可以转换为指针或从指针转换而来,NULL PTR
是值为零的指针)
std::string&
不是指针(或整数),因此不能对其使用NULL
。您可以返回”
或“未知”
或类似的内容 NULL是指针(或者从技术上讲,整数值为零,可以转换为指针或从指针转换为整数值,nullptr
是值为零的指针)
std::string&
不是指针(或整数),因此不能对其使用NULL
。您可以返回”
或“未知”
或类似的内容 引用不能为NULLUse断言以指示前提条件冲突,使用异常以指示运行时错误。引用不能为NULLUse断言以指示前提条件冲突,使用异常以指示运行时错误。或者,引发异常。请注意,您不能仅返回“”代码>因为调用方将以悬空引用结束。或者,引发异常。请注意,您不能仅返回“”代码>因为调用者将以悬空引用结束。请注意,您不能仅返回“”因为调用者最终会得到一个悬空的引用代码>,这也将产生一个空字符串。请注意,您不能仅返回“”因为调用者最终会得到一个悬空的引用代码>,这也将产生一个空字符串。