多态性(类型) 这是Bruce Eckel的“C++思想”第1卷(第716页第2页):<

多态性(类型) 这是Bruce Eckel的“C++思想”第1卷(第716页第2页):< ,c++,oop,polymorphism,C++,Oop,Polymorphism,“多态性是一项无法实现的功能 可以单独查看(例如,const或switch语句) 例如),但作为“大型”项目的一部分,它只能协同工作 阶级关系的画面。人们经常被其他人搞糊涂, C++的非面向对象特性,如重载和缺省 参数,有时表示为面向对象的。 别傻了,如果不是后期绑定,就不是多态性。” 我不能很清楚地理解这一点。他是说没有编译时多态性这样的东西吗?他说的如下 这是多态性的一个例子 class A { virtual void foo() { std::cout << "Bas

“多态性是一项无法实现的功能 可以单独查看(例如,const或switch语句) 例如),但作为“大型”项目的一部分,它只能协同工作 阶级关系的画面。人们经常被其他人搞糊涂, C++的非面向对象特性,如重载和缺省 参数,有时表示为面向对象的。
别傻了,如果不是后期绑定,就不是多态性。”


我不能很清楚地理解这一点。他是说没有编译时多态性这样的东西吗?

他说的如下

这是多态性的一个例子

class A
{
    virtual void foo() { std::cout << "Base class" << std::endl; }
};

class B : public A
{
    virtual void foo() override { std::cout << "Derived class" << std::endl; }
};
他是说没有编译时多态性吗

<>他表示,他和C++标准一样,他使用“多态”一词专门指动态(运行时)多态性,C++通过继承和虚函数支持。
C++还通过模板和函数重载支持一些人所谓的“静态(编译时)多态性”或“泛型”。在C++的上下文中,我们倾向于不使用“多态”这个词,以避免与标准混淆,而不是这个术语的含义。

似乎他至少忽略了静态多态性。“不要被愚弄了;如果它不是迟绑定,它不是多态性”这意味着什么?@ Suury:“迟绑定”基本上是指在调用函数时决定调用哪个函数;因此,它可以使用以前没有的信息。在C++中,这是用虚函数完成的;调用一个函数使用对象的动态类型来决定调用哪个函数重写。让我困惑的是:“如果不是后期绑定,就不是多态性。”
// 3 overloads of a function
int foo(int x);
int foo(double x);
int foo(int x, double y);