c++ - 关于多态性应该了解的 C++ 知识有哪些

标签 c++ c++11 polymorphism

<分区>

在 C++ 中使用多态性时,需要了解哪些重要事实。

例如,当从 derived 转换为 base 时,应该注意什么?

什么时候可以向上转型,什么时候不能? 什么时候需要“虚拟”析构函数,什么时候不需要?

使用从基对象到派生对象的指针时需要注意什么?

有一个discussion in the C++ lounge刚刚关于多态类型的sizeof(*this),这启发了我问这个问题。

一个“模糊”的事实,比如这个:

“如果你有一个 Derived 隐藏在 Base& 后面,那么静态类型是 Base,而动态类型是 Derived。”

也是我正在寻找的那种东西,在这个问题中。

最佳答案

阅读“Effective C++”和“More Effective C++”。在这里回答您的问题实际上需要写一本小书。

关于c++ - 关于多态性应该了解的 C++ 知识有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037234/

相关文章:

java - 引用持久性并传递可变数量的数组

c++ - 在 C++ 的构造函数 foo<T>() 中有一个模板是什么意思?

c++ - 过滤嵌套动态元组(dynamic tuple of tuples)

c++ - 如何洗牌 std::vector?

c++ - 分配器中的每个对象数据?

c++ - C++中的邻接表实现

c++ - 如何在非模板类中存储仿函数?

c++ - 调试版本 SEGFAULTs 而发布版本有效 - 是 RVO 吗?

c++ - 关于多态性,引用和指针是否相等?

c++ - 生命游戏,C++ - 多态数组(也许还有指针)