<<C++ Primer 5th>> P213 英文版
6.2.3 节
"We can initialize an" object with a low-level const from a nonconst object but not vice versa"
但是我下面这样写的话,为什么没报错呢?这难道不是low-level对象向nonconst对象赋值吗?
const string &cstString = "Why";
string normalString= cstString ;
但是如果有一个函数
void why(string &tryagain)
{
cout << "Dont know Why" << endl;
}
在main()中调用方法时这样写的话就会提示错误(这倒是和书上写的一致)
const string &cstString = "why";
why(cstString) ;
一样都是用low-level object来初始化 nonconst object,为什么第一种没报错,而第二种却报错呢?
string normalString = cstString ; //发生了一次拷贝
string& normalString = cstString ; //没有发生拷贝,但是编译会报错,不能把const对象绑给non-const引用