2017-12-27 898 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」])索引。

相關問題