在 C++ 中使用运算符 [] 时的最佳做法
Best practice when using operator[] in c++
我有一个使用运算符[]访问一些数据的myClass。我们创建的这个类是这样的:
shared_ptr<myClass> ptr (new MyClass);
因此,当我想使用运算符 [] 时,我可以通过两种方式执行此操作:
ptr->operator[]("something"); // 1
(*(ptr.get()))["something"]; // 2
最好的方法是什么?
两者都不是:
(*ptr)["something"];
ptr.get()
用于需要指针值的情况,operator->
用于访问成员,operator*
用于需要引用的情况。在这种情况下,引用是最方便的,因为在使用 ->
时需要拼写出operator[]
的名称。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在c代码之间共享数据的最佳方式
- 使用std::source_location报告错误的最佳实践
- 派生类销毁的最佳实践是什么
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 检测win32服务创建和删除的最佳方法
- 在reactor中存储eventHandlers的最佳方式是什么
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 在AVX通道中混洗的最佳方式
- 程序顶部的声明与定义(最佳实践)
- 别名模板的专业化 C++11 中没有开销的最佳替代方案