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

Kev*_*217 3 c++ operator-overloading slice

我正在尝试用C++实现一个字符串函数,所以它可以在Python中运行.

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

str = "filename.ext"
bits_0 = str[1:3]
bits_1 = str[-1:]
Run Code Online (Sandbox Code Playgroud)

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

Car*_*rum 7

:不是在C++的操作者.它只是示波器分辨率运算符::或三元运算符的一部分?:.由于它不是运营商,因此不能超载.

编者注:如果你想使用Python,请使用Python.

  • 我通常同意你的社论,但在其他语言中模拟方便的语法糖从根本上没有错。特别是有一个数组切片运算符会很好。 (4认同)

tim*_*rau 5

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