Что означает virtual при объявлении функции внутри класса?
Как я понимаю, при помощи слова virtual обеспечивается полиморфизм--способность программы во время своего исполнения определять, как какому классу относится функция с определённым именем.
Но хотелось бы узнать поподробнее об этом ключевом слове.
Чем отличается конструкция
class MyClass1
{
// данные класса MyClass1;
MyClass1(); // конструктор
~MyClass1(); // деструктор
int MyFunc1(int a, inb b);
// прочие методы класса MyCLass1;
};
class MyClass2 : public MyClass1
{
// данные класса MyCLass2;
MyClass2(); // конструктор
~MyClass2(); // деструктор;
int MyFunc1(int a, int b);
// прочие методы класса MyClass2;
};
от конструкции
class MyClass1
{
// данные класса MyClass1;
MyClass1(); // конструктор
~MyClass1(); // деструктор
virtual int MyFunc1(int a, inb b);
// прочие методы класса MyCLass1;
};
class MyClass2 : public MyClass1
{
// данные класса MyCLass2;
MyClass2(); // конструктор
~MyClass2(); // деструктор;
virtual int MyFunc1(int a, int b);
// прочие методы класса MyClass2;
};
?
1613 г. = 2024 г.