这是多态(C ++ / Procedural编程方式)吗?

时间:2018-06-01 06:08:25

标签: c++ polymorphism

我想知道这是否是c ++中多态的一个例子。我检查了OOP中的示例,但我没有找到任何纯编程方式。 提前感谢您的回答!

#include <iostream>
using namespace std;

int return_value(int a) {
return 5;
}
char return_value(char b) {
return 'a';
}
int main() {
    int a = 1;
    char b = 'c';
    cout << return_value(a);
    cout << return_value(b);
    return 0;
}

4 个答案:

答案 0 :(得分:2)

多态性是指多种形式的一个名称。 从这个意义上讲,即使函数重载也是一种多态,因为同名为您提供了不同的功能。

将多态性分类为编译时多态性&amp;运行时多态性。然后,函数重载是编译时多态的一种情况。虚函数是运行时多态的示例。

是的,您的代码是编译时多态的一个例子。

有关运行时和编译时多态性之间差异的更多详细信息,请参阅What is the difference between dynamic and static polymorphism in Java?

答案 1 :(得分:0)

这只是一个重载函数,它可以在某种程度上被认为是多态性。 但是,在这里你可以找到更多关于多态的信息:

Polymorphism in c++

答案 2 :(得分:0)

它不是多态性,here您可能会发现多态性及其变异。

答案 3 :(得分:0)

这可以被视为编译时多态。运行时多态的一个示例是在基类中使用虚函数并在扩展类中覆盖这些函数。