Структуры C++ (структура). Часть 2

В прошлой статье мы начали знакомство с таким типом данных С++, как структура. Как мы выяснили структуры Structures в С++ и подобных языках, нужны для группировки данных с разными типами. При этом Structures во многом сходны с классами и позволяют создавать переменные и присваивать полям внутри структуры значения. Данная особенность делает код более гибким, как и в случае классов, но при этом уменьшают расход памяти по сравнению с объектами классов. И в сегодняшней статье мы рассмотрим структуры с множеством переменных, а также именованные структуры.

Одна структура с несколькими переменными.

Для создания множества переменных к одной структуре достаточно разделить их запятыми.

struct {
  int myNum;
  string myString;
} myStruct1, myStruct2, myStruct3;

В этом примере показано, как использовать структуру в двух разных переменных:

#include <iostream>
#include <string>
using namespace std;

int main() {
  struct {
    string lang;
    string rating;
    int amount;
  } myLang1, myLang2; // Мы можем добавлять переменные, разделяя их запятыми

  // присвоим значения первой структуре
  myLang1.lang = "C++";
  myLang1.rating = "4";
  myLang1.amount = 1000;

  // Поместите данные во вторую структуру
  myLang2.lang = "Python";
  myLang2.rating = "6";
  myLang2.amount = 2969;

  // Распечатаем элементы структуры
  cout << myLang1.lang << " " << myLang1.rating << " " << myLang1.amount << "n";
  cout << myLang2.lang << " " << myLang2.rating << " " << myLang2.amount << "n";
  return 0;
}

Именованные структуры.

Давая имя структуре, вы можете обращаться с ней как с типом данных. Это означает, что вы можете создавать переменные с такой структурой в любом месте программы в любое время.

Чтобы создать именованную структуру, поместите имя структуры сразу после ключевого слова struct:


struct myDataType { // Данная структура называется "myDataType"
  int myNum;
  string myString;
};

Чтобы объявить переменную, использующую структуру, используйте имя структуры в качестве типа данных переменной:

myDataType myVar;

Пример

Используйте одну структуру для представления двух автомобилей:

#include <iostream>
#include <string>
using namespace std;

// Объявите структуру с именем "car"
struct car {
  string brand;
  string model;
  int year;
};

int main() {
  // Создайте структуру автомобиля и сохраните ее в myCar1;
  car myCar1;
  myCar1.brand = "BMW";
  myCar1.model = "X5";
  myCar1.year = 1999;

  // Создайте другую структуру автомобиля и сохраните ее в myCar2;
  car myCar2;
  myCar2.brand = "Ford";
  myCar2.model = "Mustang";
  myCar2.year = 1969;
 
  // Распечатайте элементы структуры
  cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "n";
  cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "n";
 
  return 0;
}

Таким образом, мы можем создавать, в С++, гибкие и при этом легкие с точки зрения потребления памяти конструкции, при помощи структурStructure.

Источник