重载运算符 `[ ]` 和 ':'

Overload Operator `[ ]` and ':'

我正在尝试用 C++ 实现一个字符串函数,因此它可以像 Python 中那样运行。

例如,在 Python 中你可以这样编码,

str = "filename.ext"
bits_0 = str[1:3]
bits_1 = str[-1:]

要重载的一件事是运算符 [],但在这种情况下如何重载运算符 :

C++中没有operator:。因此你不能 "overload" 它。

:not an operator in C++。它只是范围解析运算符 :: 或三元运算符 ?: 的一部分。由于它不是运算符,因此不能重载。

编者注:如果要使用Python,请使用Python。

冒号“:”不是运算符。 C++ 中的冒号 (:) 是一个运算符,本质上是调用称为初始化列表的东西。初始化列表可用于诸如:

i) 调用基础 class 构造函数

ii) 在构造函数主体执行之前初始化成员变量。

您可能已经看到使用冒号的一个示例是识别 class 访问说明符。例如:

私人:

整数 x;

int y;