女朋友的前任:将'const xxx'作为'xxx'的'this'实参时丢弃了类型限定(原因)

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 15:18:31

   将'const xxx'作为'xxx'的'this'实参时丢弃了类型限定 这样的错误一般是由于const限定符引起的。 ########## a.h ##########class A{public:          size_t size()          {    return size;    }private:           size_t 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()    函数变为 :  size_t size() const  即可。