Size: a a a

cxx.Дискуссионная

2021 July 10

V

Vuniverse in cxx.Дискуссионная
По сценарию ты должен ответить что функция переопределится и выведет "С"
источник

V

Vuniverse in cxx.Дискуссионная
Но я должен сказать что это не правльно
источник

Q

Queen in cxx.Дискуссионная
Ну да. Это я понял
источник

V

Vuniverse in cxx.Дискуссионная
И пояснить что у функции foo в классе А другая сигнатура
источник

V

Vuniverse in cxx.Дискуссионная
Там стоит конст, и так как у нас указатель на класс А, виртуал не найдёт сигнатуру с конст
источник

V

Vuniverse in cxx.Дискуссионная
Это одна из самых хитрых задачек про виртуалы
источник

Q

Queen in cxx.Дискуссионная
Вот это как раз и не понял
источник

V

Vuniverse in cxx.Дискуссионная
Ещё можно немного отредактировать и получится другая хитрая задачка
источник

Q

Queen in cxx.Дискуссионная
Т.е. что выведет метод из С я бы ответил
источник

V

Vuniverse in cxx.Дискуссионная
struct A{
   virtual void foo(){ std::cout«"A"«std:endl;}
};
struct B:A{
  void foo(){ std::cout«"B"«std:endl;}
};
struct C:B{
   void foo(){ std::cout«"C"«std:endl;}
};
main{
  A* var = new C;
  var->foo();
}
источник

V

Vuniverse in cxx.Дискуссионная
На то и расчитано
источник

V

Vuniverse in cxx.Дискуссионная
@pipipapapopopupu Попробуешь ответить, или пояснить сценарий тут?
источник

Q

Queen in cxx.Дискуссионная
У тебя изначально они не были связаны просто
источник

Q

Queen in cxx.Дискуссионная
Позже только
источник

V

Vuniverse in cxx.Дискуссионная
Это да,  иза телеги протупил. Надо было ссылку на пастебин скинуть
источник

V

Vuniverse in cxx.Дискуссионная
Или скопировать готовую задачку а не на ходу писать
источник

V

Vuniverse in cxx.Дискуссионная
Ну а что с этим?
источник

V

Vuniverse in cxx.Дискуссионная
Тут надо помнить только одно свойство виртуальных методов
источник

V

Vuniverse in cxx.Дискуссионная
Ещё вспомнил что в оригинале она ещё усложнена
источник

V

Vuniverse in cxx.Дискуссионная
Ну пусть уже так будет
источник