0
У меня есть класс, наследующий stl-вектор, и мне нужны две функции, возвращающие актеры в вектор, один изменяемый и другой неизменяемый.Static cast class этот указатель на постоянный указатель
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
перегрузки?
Потому что вы не возвращаете 'константного вектора &' от второго. –
callyalater
'static_cast' пытается удалить константу указателя' this' и возвращает что-то типа 'vector &'. См. [Здесь] (http://en.cppreference.com/w/cpp/language/static_cast) для получения дополнительной информации. –
callyalater
FYI, 'const_cast' - это то, что вы хотели, а не' static_cast'. –