C ++最初引入了引用,以隐藏丑陋的指针语法,就像许多现代程序语言一样。
现在,有了智能指针,我觉得我们必须(再次)显式使用ptr->element
或*ptr.element
而不是仅仅使用reference.element
。
这是我们对所有权进行明确控制所必须付出的代价,即能够保持所有权或继续所有权吗?
还是我想念一些东西...?
答案 0 :(得分:1)
智能指针是有意义的->
之类的少数情况之一,因为可以使用它来访问两个不同的成员。看这个例子:
shared_pointer<string> a(new string);
cout << a->size() << a.use_count << endl;
shared_pointer的成员函数对管理它很有用,您可以访问托管对象的成员。如果使用相同的语法并可能产生名称冲突,那将是一团糟。