所以我已经用 C++ 编程了一段时间,有人告诉我,使用动态转换将抽象类指针的指针转换为不同的具体类指针是不好的做法。
Shape* GeneralShape = new Triangle(...);
Triangle* triPtr = dynamic_cast<Triangle*>(GeneralShape);
其中 Shape 是一个抽象类,而 Triangle 继承自它。
当您继承的一个类与抽象类所包含的通用函数有点不同并且需要更多的东西时,使用动态转换似乎是一种访问成员函数的便捷方式。我只是想知道什么是坏的或运行时多态性的开销是什么?