c++ - C++:引用和智能指针 - 有没有智能引用之类的东西?
问题描述
最初对 C++ 的引用是为了隐藏丑陋的指针语法,就像许多现代程序语言一样。
现在,有了智能指针,在我看来我们必须(再次)显式使用ptr->element
or*ptr.element
而不是reference.element
.
这是我们必须为拥有明确控制权而付出的代价,即能够保留或转移它吗?
还是我错过了什么……?
解决方案
智能指针是少数几个有意义的情况之一->
,因为您可以使用它访问两个不同的成员。看这个例子:
shared_pointer<string> a(new string);
cout << a->size() << a.use_count << endl;
shared_pointer 有一些成员函数,这对于管理它很有用,您可以访问被管理对象的成员。如果它使用相同的语法并且可能会产生名称冲突,那将是一团糟。
推荐阅读
- r - How to determine which fold was finally used as a test in CV?
- image - 带有实时馈送的边界框的波动
- c++ - 试图通过指针映射访问类成员
- python - paramiko SSHClient sudo 到新用户
- nested - How to get a working wikitable in a nested tabber?
- python - 识别多个 JSON 多边形内的地理数据框点
- svg - webpack处理后svg文件中导入样式表的问题
- r - 在 dplyr 管道中取 ntiles 和 bind_rows 之间的差异
- c# - 如何从 Windows 服务在应用程序中启动 Windows 窗体?
- php - 如何在 php 和 sql 中创建聊天对话列表?