Вы еще помните фразу из прошлого урока: «Класс — это абстракция и обобщение объекта, а объект — это конкретность и экземпляр класса»? После изучения определения класса следующим шагом будет создание и использование объектов !
1. Создание объектов:
Класс — это структура, содержащая функции. Это самоопределяемый тип данных. Используйте его для определения переменных, которые являются объектами. Это так называемый «объект — это конкретный экземпляр и экземпляр класса». этого класса определен, можно также сказать: создать экземпляр объекта, вот что это значит!
Использование объектов аналогично использованию структур. В основном они обращаются к членам внутри, и все они доступны с помощью , например:
StudentA;A.num=101;strcpy(A.name,dotcpp);A.score=100;A.print();
Следует отметить, что все переменные-члены в этом классе объявлены как общедоступные типы . Если они объявлены как частные типы, им будет запрещено сообщать об ошибках, если к ним осуществляется прямой доступ, главным образом, через объекты и переменные в основной функции. Причина в том, что переменные частного типа являются частными типами и не допускают внешнего доступа.
Для частных переменных, которые мы хотим защитить, но хотим контролировать, мы обычно объявляем их как частные типы, а затем одновременно определяем специальный метод присваивания открытого типа. Поскольку внутренние члены могут получать доступ к частным объявленным переменным, мы можем использовать это. общедоступный внешний метод для косвенного управления этими частными членами для достижения эффекта инкапсуляции и защиты, и этот метод открытого типа также называется внешним интерфейсом этого класса. Пожалуйста, поймите это предложение!
2. Указатель на объект:
Как и обычные переменные, объекты также представляют собой непрерывное пространство памяти, поэтому вы также можете создать указатель на объект, то есть указатель объекта , для хранения адреса объекта.
Тогда метод создания аналогичен использованию указателя общего типа, а метод определения следующий:
Имя класса * имя указателя;
Например, определите Student *p; определите указатель p типа Clock. Должно быть понятно, что объект здесь не создается и, конечно, конструктор не будет вызываться. Далее вы можете присвоить этому указателю адрес объекта класса того же типа, а затем получить доступ к членам объекта через ->.
Код выглядит следующим образом:
Student*p;StudentA;p=&A;p->print();
Выше описано, как использовать указатели объектов. Помимо их использования при присвоении значений и доступе к членам, также рекомендуется использовать указатели при передаче параметров, поскольку они передают адреса и не копируют назначения между объектами, тем самым уменьшая нагрузку на память. и повысить эффективность.
3. Ссылка на объект:
Ссылка — это новый тип в C++. Ссылка на объект — это псевдоним объекта класса. По сути, адрес объекта класса присваивается ссылочному типу. Оба они указывают на часть пространства памяти. Так как же определить использование? Покажите это вам ниже.
СтудентA;Студент&Aq=A;
Как показано в приведенном выше коде, определите объект типа Student, затем используйте & для определения ссылочного типа этого типа и назначьте объект A Aq в качестве инициализации.
Следует отметить следующее:
1. Как и указатели, они оба должны быть одного типа, прежде чем на них можно будет ссылаться.
2. Если не используется возвращаемое значение или формальный параметр функции, другие ссылочные типы должны быть инициализированы одновременно!
3. Ссылочный тип не создает новый объект, поэтому конструктор вызываться не будет.
Итак, поскольку это псевдоним объекта класса, метод использования тот же, что и объект класса, с использованием метода alias.member для доступа, например:
StudentA;Student&Aq=A;Aq.print();
Как видите, при использовании ссылочного типа суть по-прежнему заключается в сохраненном адресе. Поэтому независимо от определения параметра не будет слишком много накладных расходов на память. В то же время у указателей есть преимущество. используется так же, как и сам объект класса. При создании аргументов функции просто передайте ссылочный объект напрямую, не добавляя символы адреса, чтобы это выглядело более интуитивно понятным и удобным. В этом преимущество ссылочных типов.