C++ const_cast 和重载 在4.11.3节(第145页)中我们说过,const_cast 在重载函数的情景中最有用。举个例子,回忆6.3.2节(第201页)的shorterstring 函数://比较两个string对象的长度,返回较短的那个引用 const string &shorterString(const string &sl,const string &s2) { return sl.size()<= s2.size()?
const_cast和重载 在下面的第一个函数中我们使用是否const的字符串都可以调用, 但是返回值也都是const string &。 如果我们需要一个返回后可以被修改的值,也就是左值,那么我们就需要用到第二个函数。 第二个函数中有const_cast对字符串进行从非const到const 再由const到非const的转换。 我们可以看出以下的这种调...
s1 : s2; } string &shorterString(string &s1, string &s2) { auto &rs = shorterString(const_cast<const string &>(s1), const_cast<const string &>(s2)); return const_cast<string &> (rs); } int main() { const string &ss1("123"); const string &ss2("1234"); const string &r1...