Думаю, что всем известно о том, что struct - имеет открытый доступ к данным, а class - закрытый.
Но вот мне стало интересно... Раз у класса нельзя ничего поменять и даже получить доступ к методам, то какой смысл от его использования? При условии, что модификаторы доступа public не ставятся.
По синтаксису классы и структуры очень похожи и различаются они лишь вот модификаторами доступа, и то, как они хранятся в памяти компьютера.
Можете разъяснить этот момент?
C/C++
В чём смысл использования классов?
То, что в C++ структурам разрешили иметь методы, является ошибкой дизайна языка. Структура должна использоваться только там, где нужен набор данных, не имеющий собственных методов.
А вот класс - это модуль, имеющий состояние (поля) и поведение (методы). При этом мы явно указываем (посредством обязательного public), какие поля и методы будут использоваться для взаимодействия с другими классами. Отделяем то, что доступно снаружи, от того, что работает только внутри класса.
А вот класс - это модуль, имеющий состояние (поля) и поведение (методы). При этом мы явно указываем (посредством обязательного public), какие поля и методы будут использоваться для взаимодействия с другими классами. Отделяем то, что доступно снаружи, от того, что работает только внутри класса.
Во-первых, продолжайте изучать язык, тогда не будет возникать вопросов с формулировкой: "у класса нельзя ничего поменять".
> При условии, что модификаторы доступа public не ставятся.
бессмысленно обсуждать то, как делать бессмысленные вещи
>какой смысл от его использования
Для хранения данных и методов их обработки в единой сущности
> При условии, что модификаторы доступа public не ставятся.
бессмысленно обсуждать то, как делать бессмысленные вещи
>какой смысл от его использования
Для хранения данных и методов их обработки в единой сущности
"Думаю, что всем известно о том, что struct - имеет открытый доступ к данным, а class - закрытый" А в чём проблема поставить модификатор? Так в этом и фишка, что ты сам можешь управлять доступом к данным. Хочешь открываешь, хочешь закрываешь. Кстати, один из принципов ООП - это инкапсуляция, которая как раз и заключается в том, что не надо пользователю давать доступ ко всем данным. Валерий уже привел в пример автомобиль.
В си такого нет, по крайней мере подобного простого.
В си такого нет, по крайней мере подобного простого.
Пользоваться автомобилем, а тем более общественным транспортом, вполне себе имеет смысл без знаний устройства двигателя внутреннего сгорания, и, боже упаси, не пытаясь что-то там "поменять".
Эти все классы структуры эта чиста синтаксический сахар, ООП можно применять даже в Lisp Scheme, который завязан только под ФП
Похожие вопросы
- Составить программу на С++ Программирование с использованием классов. Создание и работа с классами.
- Помогите написать код! С++ Строки (без использования классов)
- Программирование с использованием шаблона класса.
- Программирование с использованием дружественных классов и методов.
- В смысле С не поддерживает классы а как же библиотеки ?
- Добрый день. Нужна помощь в реализации динамических структур. Нужно написать дек с использованием malloc.
- Указатели. Программирование с использованием динамических двухмерным масивов.
- C++ библиотека fstream. при использовании Кириллицы изменяется кодировка в создаваемом файле..
- Как Создать иерархическую систему классов, на примере этого задания? Второй день уже туплю, помогите пожалуйста... С++
- Класс Poll и класс Variant (тема инкапсуляция) C++
Но ведь для этого же можно использовать и структуры?