这样的错误一般是因为const限定符的问题。
################a.h###############
class A
{
public:
size_t size(){return size;}
};
################main.cpp###########
void print(const A& a)
{
cout << a.size() << endl;
}
A a;
print(a);
错误:将const xxx 作为xxx 的this 实参时丢弃了类型限定
解决:这是由于print()传递的是const参数,而A::size() 不保证传递的实参不改变,所以
报错(STL机制问题). 应该吧size()声明为const函数,以保证编译通过。
size_t size() const;
转自:http://www.360doc.com/content/11/1102/15/7828500_161101031.shtml