, с пи, преобразованным в int.
ного растерялся по поводу этих двух терминов и был бы рад прояснить некоторые сомнения.
Насколько я понимаюfunction overloading
означает наличие нескольких методов в одном классе с одним и тем же именем, но с разным количеством аргументов, разными типами аргументов или последовательностью аргументов независимо от типа возвращаемого значения, которое не влияет на искаженное имя функций.
Включает ли приведенное выше определение также «.... в том же классе или в связанных классах (связанных через наследование) .....»
А такжеFunction Overriding
связан с виртуальными функциями, той же сигнатурой метода (объявленной виртуальной в базовом классе) и переопределенной для реализации в подклассах.
Мне было интересно в сценарии, следующий код:
#include <iostream>
class A
{
public:
void doSomething(int i, int j)
{
cout<<"\nInside A::doSomething\n";
}
};
class B: public A
{
public:
void doSomething(int i, int j)
{
cout<<"\nInside B::doSomething\n";
}
};
int main()
{
B obj;
obj.doSomething(1,2);
return 0;
}
В приведенном выше сценарии, что можно сказать:
Метод в производном классеoverrides
метод в базовом классе ИЛИ
Метод в производном классеoverloads
метод в базовом классе
Применима ли перегрузка к областям классов, и переопределение не обязательно относится к виртуальным функциям?
Я думаю, что это должно бытьoverrides
, но просто нужно пояснение, потому что я случайно вспомнил термин переопределение, используемый специально с виртуальными функциями.