65,208
社区成员
发帖
与我相关
我的任务
分享
String(const char* data)
{
//在编译的时候为什么系统会提示下面这句“ error: invalid initialization of non-const reference of type ‘char*&’ from a temporary of //type ‘char*’”,谢谢?
std::swap(data_, const_cast<char*&>(data));
}
std::swap(data_, const_cast<char*>(data));
1.
const_cast会产生一个临时变量char*
2.
template <class T> void swap (T& a, T& b);, 因为data_是char*,所以推导出T是char*, 所以形参b的类型是char*&
3.
所以临时变量不能绑定到char*&