45 |
С т р а н и ц а
Определение struct Player это то, что говорит компьютеру, как расположен объект
Player в памяти.
Совет
Я надеюсь, вы заметили обязательность точки с запятой в конце объявления
структуры (struct). Объявлениям объекта struct, нужно иметь точку с запятой в
конце, а функциям нет. Это
просто правило С++, которое вы должны запомнить.
Внутри объекта Player, мы объявили строковый тип для имени игрока, тип с
плавающей точкой для его hp и объект Vector для полных
положений x, y, z.
Когда я говорю объект, я имею в виду С++ struct (или позже мы введём термин
класс).
Погодите! Мы поместили объект Vector внутри объекта Player! Да, мы можем так
делать.
После определения того, что имеется внутри объекта Player, мы и создаём
экземпляр объекта Player, именуемый me и присваиваем ему значения.
После присвоения значений, объект me выглядит, так как показано на следующем
изображении:
Указатели
Особенно мудрёным принципом для постижения, является принцип указателей.
Указатели не так трудны для понимания, но может потребоваться время, чтобы
разобраться с ними.
Скажем, у нас в памяти есть, как и до этого, объявленная переменная типа Player:
Player me;
me.name = "William";
me.hp = 100.0f;
46 |
С т р а н и ц а
Сейчас мы объявляем указатель к Player:
Player* ptrMe;
// Объявление указателя
Знак * обычно придаёт особенность. В данном случае знак * делает особенным
ptrMe
. Знак звёздочка *, является тем, что
делает
ptrMe
типом указатель.
Сейчас мы хотим связать
ptrMe
к
m
e
:
ptrMe = &me; //
СВЯЗЫВАНИЕ
Совет
Этот шаг связывания очень важен. Если вы не привяжите
указатель к объекту перед
использованием этого указателя, то у вас будет нарушение с получением доступа в
памяти.
Сейчас
ptrMe
ссылается на тот же объект что и me. Изменение
ptrMe
изменит и
me
,
как показано на следующем изображении:
Достарыңызбен бөлісу: