重载运算符 `[ ]` 和 ':'
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;
我正在尝试用 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;