c++ - 转动 shared_ptr参考
问题描述
存储时返回T&
参考的好习惯是什么shared_ptr<T>
?
示例场景:我存储 std::shared_ptr<Point> lastLocation;
并有一个签名:Point& getlastPosition();
我想制作类似的东西:
Point& MyClass::getLastLocation(){
return *lastLocation.get()
}
解决方案
您的代码应该按原样工作。虽然调用get()
是多余的:共享指针本身可以使用取消引用运算符按原样取消引用,从而产生您想要的引用。所以简单地写就足够了
Point& MyClass::getLastLocation(){
return *lastLocation;
}
请记住Point
,除非它的名称不能描述它是什么,否则可能不需要首先将其存储在动态内存中。检查您的代码设计并首先考虑是否需要任何类型的指针。
推荐阅读
- c++ - ifstream 跳过整行
- python - 由于pyqt5 Python中没有qt插件初始化错误,Qt设计器无法启动
- amazon-web-services - Cloudfront X-Cache 一直显示“Miss from cloudfront”
- java - 首次在 Java 中打开应用程序时如何创建巨大的 SQlite 数据库
- css - Flexbox:在其框中垂直居中文本
- sql - 如何在不使用 SQL*loader 和 oracle 数据库中的外部表的情况下上传平面文件?
- angular - 属性“索引”在类型“成分”上不存在,angular8
- c# - 如何销毁游戏对象的材质并使用编辑器脚本向其中添加新材质?
- android - 在 ListViewAutoScrollHelper.canTargetScrollVertically (ListViewAutoScrollHelper.java:73) 出现 NullPointerException
- sql - 在原始 sql 查询的结果中填充空的缺失日期