2017-12-27 783 views
-1

我从http://www.boost.org/doc/libs/1_54_0/doc/html/boost/program_options/variables_map.html正在返回什么以及本文档中描述的功能正在采取什么措施?

const variable_value & operator[](const std::string & name) const; 

看着这个文件我在看这个评价一个C++项目的逻辑。你不能从C++的函数返回一个数组,所以我很困惑在参数列表前面的方括号。我也困惑为什么在尾部列表后面有一个const。

+0

这个'operator'返回一个'const'引用,而不是一个数组。请搜索**运算符超载** – Fureeish

+1

这是一个简单的[重载下标运算符](http://en.cppreference.com/w/cpp/language/operator_member_access)。 – Holt

+0

末尾的'const'意味着这个方法不会修改任何内部的东西。 –

回答

1

拖尾const表示函数中的“this”参数也是const。这意味着在这个函数中没有类的状态可以被改变,并且函数不能调用其他的非const成员函数。

函数签名本身会重载[]运算符。该函数的返回类型是“const variable_value &”。重载[]运算符允许您通过任何类型的索引来索引您的类。通常,数组使用[]来访问元素(arr [1] ==数组的第二个元素)。有了这个重载,该类可以用一个字符串参数(thatClass [“SomeString”])索引。

相关问题