const限定符的疑惑
大家好,初学c++,对const限定符不是很理解。下面的程序不知道为什么一直编译不通过。请大家指点一下。
ostream& operator<<(ostream& out,const course& c) {
? out << c.name << ": " << c.title << "\n";
? int index = 0;
? while (c.description[index] != "")
? {
? out << c.description[index] << "\n";
? index++;
? }
? return out;
}
我把参数列表中的const限定符去掉后,编译就通过了,所以我猜想是const的问题。不知道大家是否可以总结一下参数列表中加入限定符const 以后,不可以进行的操作,谢谢
[解决办法]
请问你重载了了course类里面的 [] 运算符了是吧
你重载了const和非const 2个版本了吗
我估计你只写了非const版本,没写const版本,所以导致了错误
因为如果传入的某个参数是常引用的话,那只能调用这个参数对象的常成员函数,不能调用一般函数
[解决办法]
course类型在系统里应该属于volatile定义,具体如何,没做了解不好说
const & 与 volatile是相互冲突的两种声明
[解决办法]
http://www.cnblogs.com/chenyuming507950417/archive/2012/01/05/2313647.html
[解决办法]