Что такое термин для наследующего конструктора класса с другими параметрами?

Возьмите пример ниже. Какой термин вы используете для описания наследуемого класса с параметрами, отличными от базового класса? Я это понимаю subbase неявно зовет base(), Вы бы не назвали это переопределением, правильно, так как базовый конструктор все еще вызывается?

#include <iostream>
#include <stdio.h>
#include <string>

using namespace std;

class base
{
public:
base()
{
cout << "Hello!\n";
}
};

class subbase : public base
{
public:
subbase(string s)
{
cout << s << endl;
}
};

int main()
{
subbase test("Hello World!\n");

return 0;
}

1

Решение

Перегружен мой друг. У него такое же имя метода, но другой параметр или тип возвращаемого значения

Но в этом случае вы просто создаете новый конструктор. Не действительно наследование или что-нибудь.

0

Другие решения

Перегрузка: при изменении подписи унаследованных функций в производном классе.

Переопределение (в случае нормальных функций) / Переопределение (в случае виртуальных функций): когда вы сохраняете сигнатуру функций базового класса в производном классе. Но вы меняете часть реализации.

Но я не говорю о Конструкторах здесь. Я говорю об обычных членских функциях класса.

0

По вопросам рекламы [email protected]