Egor Ogl

+3
с 2019
0 подписчиков
17 подписок

-У нас есть дома
-Хидден гем дома

Ответить

Ладно, напишу свою версию. Если у тебя есть функция которая должна выводить объект в виде строки, можно объявить ее как

void printObj(const Stringable& obj) { std::cout << obj.toString(); }

А тип Stringable в объявлении функции это интерфейс, который говорит, что у объекта точно есть функция toString. Т.к. его имплементирует

В таких языках как ruby такого нет, так называемая утиная типизация, там в самой функции проверка идет obj.respond_to?("toString") которая проверяет что у объекта есть такой метод

Ответить

Спагетти код, очевидно же

3
Ответить

Руперт жеш

Ответить