读书人

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

发布时间: 2012-03-26 15:46:56 作者: rapoo

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……

读书人网 >C++

热点推荐