Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Зачем нужен объект класса в с++

Кузнецов Арсений Ученик (221), закрыт 11 месяцев назад
Ну вот допустим код:
 MyClass m;
m.PrintMessage("Hello World!");
Почему надо обязательно писать MyClass m??? Почему нельзя обратиться напрямую как то так:
 MyClass.PrintMessage("Hello World"); 
В чем разница? В моих глазах это выглядит так, будто этим действием я зачем то копирую класс в переменную m и теперь могу ей пользоваться.
Лучший ответ
ФермаКактусов Высший разум (218641) 12 месяцев назад
  1. В C++, как и в других объектно-ориентированных языках программирования, класс определяет шаблон или чертёж, который описывает, какие данные и методы будут у объектов, созданных из этого класса. Объект класса — это экземпляр класса, который реализует определённые в классе характеристики и поведение.
  2. Когда вы пишете `MyClass m;`, вы создаёте объект `m` класса `MyClass`. Это означает, что вы выделяете память для хранения данных, определённых в классе, и можете вызывать методы, которые действуют на эти данные.
  3. В строке `m.PrintMessage("Hello World!");` вы вызываете метод `PrintMessage` для объекта `m`. Этот метод может использовать или изменять данные объекта `m`, если это предусмотрено логикой класса.
  4. Вы не можете напрямую вызвать `MyClass.PrintMessage("Hello World");`, потому что `PrintMessage` — это не статический метод класса. Статические методы принадлежат классу в целом и могут быть вызваны без создания объекта класса. Но обычные методы, такие как `PrintMessage`, требуют наличия конкретного объекта, потому что они могут оперировать с данными, которые уникальны для каждого объекта.
  5. Таким образом, `MyClass m;` не копирует класс, а создаёт объект, который является экземпляром класса и содержит свои собственные данные и методы, определённые в классе. Это позволяет работать с конкретными данными и состоянием объекта, что является ключевым аспектом объектно-ориентированного программирования.
cretty patМастер (1713) 11 месяцев назад
Откуда 40 лайков на ответе от нейронки?
ФермаКактусов Высший разум (218641) милая котя, вы все ответы читаете как нейронку?
Остальные ответы
Федор Новиков Искусственный Интеллект (368279) 12 месяцев назад
в экземпляре класса могут быть свои поля данных. Если начинать с голого Си, то было бы понятнее: есть структура и есть функции по работе с этой структурой. Не создавая экземпляра, метод может обращаться только к статическим полям данных.
Редис Александрович Оракул (80940) 12 месяцев назад
В моих глазах это выглядит так, кто то читал букварь по с++ ну а кто то пропустил этот момент. Ну и там поидее должно быть написано, что сначала обьявляется класс, а потом из него создаётся обьект который обладает заданными методами к которым можно обращаться для каких то своих целей, например для m.PrintMessage("Hello World!"); С одного класса можно создать множество обьёктов, таким образом при выполнении MyClass.PrintMessage("Hello World"); ты к какому обьёкту обращаешся ? Поэтому логичнее из MyClass создать обьект → m и от него требовать , что то сделать.
ПапаВысший разум (153630) 12 месяцев назад
Вообще забавно, когда люди, не имеющие даже зачатков абстрактного мышления, начинают рассуждать, что в языках нужно или не нужно. Ему букварь нужен не по C++, а по элементарной логике, и я даже не знаю, по чему ещё. Бывают ли учебники, в которых объясняется, чем понятие "стол" отличается от конкретного стола конкретной формы и размеров, из конкретного материала? Мне кажется, это понимают даже африканские дикари, выросшие с автоматом Калашникова в руках, вместо учебники. Но не понимают дегенераты, выросшие на доте.
Редис Александрович Оракул (80940) Папа, по моим ощущениям от ответов последнего времени, средний школьник выпускного класса примерно равен уровню подготовки 8 класса тоже обычной советской школы, а выпускник института, допустим технической специальности, инженерной, примерно равен уровню 11 классника советской школы. Может это на ответах такая выборка и кому интереснее ушли и на какие-нибудь локализованные стэковерфлоу или другие платформы, но в целом уровень конечно удивляет. Это я называю, купили родители планшет
Похожие вопросы