Долго задаюсь этим вопросом, поэтому не могу понять смысл классов. Для чего они нужны. Не могу найти пример, демонстрирующий использование классов во всей красе ((
DenY2: Если вы пишите в ООП стиле, то классы применяются всегда. Т. е. вопроса такого никогда и не встаёт, когда применять классы, ведь весь функционал программы реализуется только с помощью классов.
Свежий пример: habrahabr.ru/post/248061 - игра морской бой, написана с использованием классов, хотя автор игры задавался вопросом "Писать с использованием классов или функций? Какой набор классов использовать?".
Кстати, чисто в образовательных целях, можете портировать эту игру на С++ с использованием классов и на Си, используя только процедуры. При этом, при портировании на Си, вам придётся думать как уйти от классов и может такой внезапный поворот, поможет вам понять разницу между двумя приёмами программирования.
Не "скорее", а класс типом данных и является по-сути.
Зачем это нужно? Вот зачем - продолжая пример с классом комплексных чисел, то в этом классе можно ввести свои методы (читай функциями). А вот затем мы сможем работать с комплексными числами как с отдельным типом со своими функциями (или перегрузить уже имеющиеся и работать с помощью привычных функций).
Все просто - класс - это не функция - класс - это скорее тип данных включая способы работы с ним. Типа структуры - но к которой еще и свои функции добавлены.
Набивший оскомину пример - например вам нужны комплексные числа - и к ним способы умножения, деления и т.п... чего нет в стандартной реализации. (Хотя может уже и есть).
Сложность понимания обычно в том - зачем это нужно - можно все функциями же сделать.
Да, можно - но с классами удобней если предварительно все продумать.