C ++:引用和智能指针-是否存在诸如智能引用之类的东西?

时间:2019-09-29 15:26:27

标签: c++ c++11

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

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

这是我们对所有权进行明确控制所必须付出的代价,即能够保持所有权或继续所有权吗?

还是我想念一些东西...?

1 个答案:

答案 0 :(得分:1)

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

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

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