假设我有这样的构成:
class Dataset
{
std::unique_ptr<Properties> properties;
std::unique_ptr<Properties> & getProperties() { return properties; }
Dataset & getDataset() { return *this }
....
}
class Properties
{
Property & operator[](const std::string & s);
...
}
如何致电运营商[]?为什么以下是语法错误?
getDataset().getProperties()->["Key"]
//语法错误
答案 0 :(得分:3)
getDataset().getProperties()->operator[]("Key");
或
(*getDataset().getProperties())["Key"];
答案 1 :(得分:0)
我更愿意:
(*getDataset().getProperties())["Key"];
答案 2 :(得分:0)
至少有两种方法
( *getDataset().getProperties() )["Key"]
getDataset().getProperties()->operator []( "Key" )