【发布时间】:2016-01-19 16:35:10
【问题描述】:
在大学的一次测试中,我遇到了这个关于 STL,C++ 版本 98 中的列表的问题:
鉴于这些行:
list<A*> l; l.push_back(new A);调用**(l.begin())的返回类型?
在可用的答案中,有A 和A&(其他的不相关)。
我以为是A,但教授说是A&。
我了解到迭代器的取消引用会返回对列表元素的引用,因此*(l.begin()) 应该返回一个类型为(A*)& 的对象。
然后像**(l.begin()) 这样的另一个解引用应该“通过”列表容器给出的引用,甚至通过指向A 的指针,最终返回A 类型的对象。
正确的解释是什么?请提供解释。
【问题讨论】:
-
A和A&很不一样,没有解释的余地,你可以试试看 -
@tobi303 我知道变量和对变量的引用之间的区别。请再次阅读我的问题。还是谢谢你。
标签: c++ stl c++98 listiterator