Это полиморфизм (C ++ / процедурный способ программирования)? - PullRequest
0 голосов
/ 01 июня 2018

Интересно, это пример полиморфизма в с ++?Я проверил примеры в ООП, но не нашел ничего в чисто процедурном способе программирования.Заранее благодарю за ответы!

#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 голосов
/ 01 июня 2018

Это можно считать полиморфным временем компиляции.Примером полиморфизма во время выполнения является использование виртуальных функций в базовом классе и переопределение этих функций в расширенном классе.

0 голосов
/ 01 июня 2018

Это не полиморфизм, здесь вы можете обнаружить полиморфизм и его вариации.

0 голосов
/ 01 июня 2018

Полиморфизм означает одно имя много форм.В этом смысле даже перегрузка функций является своего рода полиморфизмом, поскольку одно и то же имя предоставляет вам различные функции.

Некоторые классифицируют полиморфизм как полиморфизм во время компиляции и полиморфизм во время выполнения.В этом случае перегрузка функции - это случай полиморфизма во время компиляции.Виртуальные функции являются примером полиморфизма во время выполнения.

Так что да, ваш код является примером полиморфизма во время компиляции.

Подробнее о различиях между полиморфизмом во время компиляции и во время компиляции см. В чем разница между динамическим и статическим полиморфизмом в Java?

0 голосов
/ 01 июня 2018

Это просто перегруженная функция, ее можно в некотором роде считать полиморфизмом.Но здесь вы можете найти что-то еще о полиморфизме:

Полиморфизм в c ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...