Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 52
Здравствуйте. Не могли бы вы объяснить, что это за класс Super и когда его стоит использовать.
И второй вопрос.
Почему в наследнике класса APlayerController для инициализации InputComponent мне нужна функция вот с такими параметрами: virtual void SetupInputComponent () override и вызов Super::SetupInputComponent() в конструкторе класса. А в наследнике APawn мне нужна вот такая вот функция virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override и только?????И не требуется никакого Super::???
Обе функции идут же из одного класса. Или они переопределены для Pawn и Controller?
Аватара пользователя
Пользователь
Сообщения: 3
Постараюсь объяснить: при объявлении функции, оператор override говорит о том, что эту функцию нужно ПЕРЕЗАПИСАТЬ или ДОПОЛНИТЬ. Для того, чтобы была такая возможность, в родительском классе, перед объявлением функции, должен быть оператор virtual, так же он должен присутствовать во всех дочерних классах при переопределении. Super - это как раз таки служит для дополнения функции: если super есть, то все команды из родительской функции будут прописаны на место super, а далее ещё функцию можно ДОПОЛНИТЬ. Если super-а нет, то при вызове функции мы НЕ используем команды из родительской функции, а перезаписываем с нуля. Пример: родительская функция при вызове печатает на экран сообщение "Hallo, Vasya". Если в дочерней функции напишем Super::(название функции), после чего так же напишем функцию вывода сообщения на экран "
How are you?", то при вызове дочерней функции получим 2 сообщения "Hallo, Vasya", "How are you?". В ином случае, если бы мы не использовали оператор Super, то при вызове дочерней функции мы бы получили только "How are you?". Надеюсь понятно. Если что - пишите.
Аватара пользователя
Пользователь
Сообщения: 52
Ну про полиморфизм я знаю, а вот за Super спасибо. Теперь все встало на свои места.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница