首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

const限定符的疑惑,该怎么解决

2012-03-26 
const限定符的疑惑大家好,初学c++,对const限定符不是很理解。下面的程序不知道为什么一直编译不通过。请大家

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
[解决办法]

探讨

1)、const在前面
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可变
const (char *) pContent;//pContent是const,*pContent可变
char* const pContent; //pContent是const,*pCont……

热点排行