在c ++中使用operator []时的最佳实践

时间:2014-03-05 16:09:15

标签: c++

我有一个使用operator []访问某些数据的myClass。我们这堂课就像这样创作:

shared_ptr<myClass> ptr (new MyClass);

所以当我想使用operator []时,我可以这样做两种方式:

ptr->operator[]("something");  // 1
(*(ptr.get()))["something"];   // 2

最好的方法是什么?

1 个答案:

答案 0 :(得分:8)

既不:

(*ptr)["something"];

ptr.get()适用于需要指针值的情况,operator->用于访问成员,operator*适用于需要引用的时间。在这种情况下,引用是最方便的,因为在使用operator[]时需要拼出->的名称。