首页 > 解决方案 > C++:引用和智能指针 - 有没有智能引用之类的东西?

问题描述

最初对 C++ 的引用是为了隐藏丑陋的指针语法,就像许多现代程序语言一样。

现在,有了智能指针,在我看来我们必须(再次)显式使用ptr->elementor*ptr.element而不是reference.element.

这是我们必须为拥有明确控制权而付出的代价,即能够保留或转移它吗?

还是我错过了什么……?

标签: c++c++11

解决方案


智能指针是少数几个有意义的情况之一->,因为您可以使用它访问两个不同的成员。看这个例子:

shared_pointer<string> a(new string);
cout << a->size() << a.use_count << endl;

shared_pointer 有一些成员函数,这对于管理它很有用,您可以访问被管理对象的成员。如果它使用相同的语法并且可能会产生名称冲突,那将是一团糟。


推荐阅读