Моя мама защитила диссертацию в колледже на Фортране, и теперь (более десяти лет спустя) ей необходимо изучить c ++ для моделирования жидкостей. Она в состоянии понять все процедурное программирование, но как бы я ни старался объяснить ей объекты, она не прилипает. (Я много работаю с Java, поэтому я знаю, как работают объекты) Я думаю, что я мог бы объяснить это слишком высокоуровневыми способами, так что это не имеет смысла для тех, кто никогда не работал с ними вообще и вырос в эпоху чисто функционального программирования.
Есть ли какой-нибудь простой способ объяснить ей это, что поможет ей понять? Спасибо за помощь заранее.
Скажи ей думать об объектах, как объекты в реальном мире. Например, весь мир может быть смесью объектно-ориентированного программирования (на C ++) с неким функциональным программированием (возможно, на языке бога, Lisp).
Возьмите объект, например газонокосилку, у него есть определенные атрибуты, и он может делать определенную вещь. (объект и класс)
Затем расскажите ей о лучшей газонокосилке, которая является продолжением вашей газонокосилки. Скажите ей, что это лучше, но все еще основывается на том же механизме (наследование).
Тогда расскажи ей о себе. Скажите ей, что иногда вы можете стать экспертом по стрижке газонов, но на самом деле вы программист и зарабатываете на жизнь. Это как будто вы действуете как две разные сущности одновременно. Это полиморфизм.
Когда она получит это, расскажите ей о том, как реализовать эти вещи на языке, который она должна выучить (C ++).
Затем скажите ей, что если ей придется написать симулятор этого мира в компьютерном мире, ей придется научиться делать это.
Когда она знает, как преобразовать свои мысли о реальном мире в программный код. она бы научилась программировать на объектно-ориентированном языке программирования.
Других решений пока нет …