【发布时间】:2017-11-17 02:07:40
【问题描述】:
我之前在软件工程堆栈交换中遇到了这个问题和答案。问题是,"Why are pointers not recommended when coding with c++?"。评分最高的答案提供了两点,第二点是感兴趣的。它指出:
C++ 中大多数指针的使用都是不必要的。
他的规范有些冗长,但作者在其中指出,“...现代 C++ 习语通常根本不需要指针。”。
首先想到的是 STL 容器中的多态性。在 C++ 中,如果不使用指针,这怎么可能?
经过一些研究,this 是我能够发现的全部内容(剧透:没有帮助)。
【问题讨论】:
-
它说的是“大多数用途”,而不是“所有用途”。
-
std::vector<std::unique_ptr<Base>>... -
@KerrekSB 这只是变相的指针。指针仍在使用中。
-
你为什么说你链接到的第二个问题没有帮助?它似乎准确地回答了你的问题。
-
@BenjaminLindley 是的,但是使用 dynamic_case
() 进行强制转换真的比使用指针更可取吗? Bjarne Stroustrup 甚至说:“最好避免强制转换。在大多数情况下,将它们的使用视为编程不佳的标志。”。必要时应避免强制转换似乎是常识。当然,在这种情况下没有必要。
标签: c++ stl polymorphism