下标运算符通常会定义两个版本,一个返回普通引用,一个是类的常量成员并返回常量引用避免改变值
class StrVec { public: std::string& operator[](std::size_t n) { return elements[n]; } const std::string& operator[](std::size_t n) const { return elements[n]; } private: std::string *elements; };
下标运算符通常会定义两个版本,一个返回普通引用,一个是类的常量成员并返回常量引用避免改变值
class StrVec { public: std::string& operator[](std::size_t n) { return elements[n]; } const std::string& operator[](std::size_t n) const { return elements[n]; } private: std::string *elements; };