【问题标题】:How to override operators of a vector in C++ [duplicate]如何在 C++ 中覆盖向量的运算符 [重复]
【发布时间】:2018-12-12 05:16:17
【问题描述】:

我正在尝试覆盖 vector 的 [] 运算符以使用其 at() 函数,以便它也检查边界。但是,它给了我错误:无效使用不完整类型'class std::vector<_tp>'

template <typename T> inline T& vector<T>::operator [] (vector<T>& v, size_t s) {
    return  v.at(s);
}

【问题讨论】:

    标签: c++


    【解决方案1】:

    你不能那样做。 operator[] 只能作为成员函数重载。

    有关该主题的更多信息,请参阅https://en.cppreference.com/w/cpp/language/operators#Overloaded_operators

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      相关资源
      最近更新 更多