Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带数组下标运算符([])的结构取消引用运算符(>;)的语法_C++ - Fatal编程技术网

C++ 带数组下标运算符([])的结构取消引用运算符(>;)的语法

C++ 带数组下标运算符([])的结构取消引用运算符(>;)的语法,c++,C++,假设我有这样的作文: class Dataset { std::unique_ptr<Properties> properties; std::unique_ptr<Properties> & getProperties() { return properties; } Dataset & getDataset() { return *this } .... } class Properties { Property & o

假设我有这样的作文:

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);
  ...
}
类数据集
{
std::独特的ptr属性;
std::unique_ptr&getProperties(){return properties;}
Dataset&getDataset(){return*this}
....
}
类属性
{
属性和运算符[](const std::string&s);
...
}
如何呼叫接线员[]?为什么下面的代码是语法错误

getDataset().getProperties()->[“Key”]
//语法错误

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

我希望:

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

至少有两种方法

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

getDataset().getProperties()->operator []( "Key" )
getDataset().getProperties()
是一个
std::unique\u ptr
,因此在调用
操作符[]
之前,必须执行另一个解引用操作。
( *getDataset().getProperties() )["Key"]

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