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

时间:2016-11-15 18:04:11

标签: c++ operator-overloading slice

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

例如,在Python中,您可以编写代码,

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

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

3 个答案:

答案 0 :(得分:7)

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

编辑说明:如果你想使用Python,请使用Python。

答案 1 :(得分:4)

C ++中没有operator:。因此,你不能超载"它

答案 2 :(得分:0)

“:”冒号不是运算符。 C ++中的冒号(:)是一个基本上调用称为初始化列表的操作符。初始化列表可用于以下内容:

i)调用基类构造函数

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

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

私人:

int x;

int y;