Я хочу переопределить []
оператор для вектора. Я думал, что самый простой способ для достижения этой цели является создать свой собственный класс, что-то вроде этого (это упрощена пример):Сохранение ссылки внутри класса
class MyVec
{
private:
std::vector<double> x; // I don't need a copy in here, it could be a reference
public:
MyVec(const std::vector<double>& y) { x = y; }
double operator[](int i) { return x[i-1]; }
};
Теперь проблема заключается в том, что я в принципе не нужно копировать данные x
, я мог бы хранить ссылку на него, но, насколько я знаю, я не могу использовать неинициализированные ссылки в классе. Тем не менее, может быть, есть какое-то обходное решение для этого, чтобы работать без копирования данных?
Что относительно наследства? – zapredelom
Что значит «классное строительство не допускает этого»? – Quentin
«классное строительство не позволяет этого» - это требование невозможности того, что вы хотите, чтобы читатели могли реализовать для вас. –