具有数组下标运算符([])的结构解引用运算符( - >)的语法

时间:2014-03-19 20:49:08

标签: c++

假设我有这样的构成:

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"] //语法错误

3 个答案:

答案 0 :(得分:3)

getDataset().getProperties()->operator[]("Key");

(*getDataset().getProperties())["Key"];

答案 1 :(得分:0)

我更愿意:

(*getDataset().getProperties())["Key"];

答案 2 :(得分:0)

至少有两种方法

( *getDataset().getProperties() )["Key"]

getDataset().getProperties()->operator []( "Key" )