静态地将类指针转换为常量指针

时间:2016-02-29 20:48:47

标签: c++ inheritance

我有一个继承stl向量的类,我需要两个函数将强制转换为vector,一个是可变的,另一个是不可变的。

class My : public vector<int> {
  public:

    vector<int>& array() {return *static_cast<vector<int>*>(this);}
    const vector<int>& array() const {return *static_cast<vector<int>*>(this);}
}

为什么第二次const重载无法编译?

1 个答案:

答案 0 :(得分:4)

演员试图删除const - ness,但这并不起作用。

但是,您应该能够写

vector<int>& array() {return *this;}
const vector<int>& array() const {return *this;}