是否const vector<A>意味着它的元素也是const如此?
在下面的代码中,
v[0].set (1234); in void g ( const vector<A> & v )
产生编译器错误
const.cpp:28:3:错误:成员函数'set'不可行:'this'参数的类型为'const value_type'(又名'const A'),但函数未标记为const
为什么?
但(*v[0]).set(1234);在void h ( const vector<A *> & v )
是编译器确定.
版本之间有什么区别?
// ...........................................................
class A {
private:
int a;
public:
A (int a_) : a (a_) { }
int get () const { return a; }
void set (int a_) { a = a_; }
};
// ...........................................................
void g ( const vector<A> & …Run Code Online (Sandbox Code Playgroud)