Strutture in C ++. parte 1

Vota questo articolo




++ struttura, struttura C ++Изучив структуры C++ в этом уроке, перед вами по настоящему приоткроется пространство для творчества в программировании. Prima di questa lezione,, мы могли использовать стандартные (встроенные) tipi di dati для переменных в своих программах (int, galleggiante, carbonizzare, bool). Сейчас же мы научимся самостоятельно создавать что-то вроде своего собственного типа данных. Это делается при помощи структур.

Как всегда, в начале статьи разберемся зачем нам это может понадобиться. Diamo, необходимо сохранить данные о девушке модели. Нам надо хранить о ней такие данные: nome, età, рост, вес, объёмы и знание/незнание английского языка. Come si può vedere, все данные о модели будут отличаться типами: имя надо хранить в массиве типа char, объемыв переменных типа int, для отметки о владении английским подойдет переменная типа bool… Si scopre, что для хранения этих данных, schieramento мы никак не сможем использовать, так как он хранит однотипные данные. Используя структуры появляется возможность сгруппировать все эти данные, условно объединенные логической связью, в одно целое. guardare:

++ struttura, struttura C ++, struct C ++

Для определения структуры используется ключевое слово struct. После него указывается дескриптор (имя нового типа данных). Имя дает программист. Оно подчиняется тем же правилам, что и имена переменных. У нас дескриптор структуры – esso Donna meravigliosa. В фигурных скобках размещаются элементы (membri) struttura – именованные переменные или массивы любого типа данных С++. Структура может хранить элементы разных типов. Как видите в нашей структуре есть элементы типа int, carbonizzare e bool. Завершается определение структуры точкой с запятой ;

dopo, как структура определена, мы можем создавать переменные типа структурыобъекты структуры. Создаются они точно так же, как и переменные типа bool, int, carbonizzareПишем дескриптор (“tipo”) и даем имя объекту структуры. Например в principale-функции создаем переменную
Donna meravigliosa firstWoman; è Donna meravigliosa будет играть роль типа, e firstWomanроль объявленной переменной.

Элементом структуры также может быть объект другой, определённой ранее, struttura. То есть структуры можно вкладывать одну в другую. Рассмотрим пример. В нём также разберемся, come accedere agli elementi della struttura, чтобы записать в них данные, per esempio, и затем показывать на экран.

Идем по порядку. linee 4 – 9: определение структуры Dimensione. Она содержит три элемента типа int, которые будут хранить замеры моделиобъемы груди, талии, бёдер. Эту структуру мы вложим в расположенную под ней структуруDonna meravigliosa. Она содержит элементы разных типовсимвольный массив, variabili di tipo int, bool. on line 17 oggetto dichiarato volume tipo Dimensione. Это и есть вложение структуры. В 21-й строке находится прототип функции, которая будет отображать данные структуры Donna meravigliosa lo schermo. Об этой функции поговорим ниже, когда дойдем до её определения.

fila 27 – объявление объекта структуры: Donna meravigliosa firstWoman = {}; Тут понятно: Donna meravigliosa – descrittore (tipo), firstWoman объект структуры. Такая запись = {}; установит все значения элементов структуры Donna meravigliosa в ноль. В том числе, всем элементам символьного массива будет присвоено значение \0 . Так как объект volume является элементом структуры Donna meravigliosa, его элементам так же будут присвоены нули. То есть такая запись позволит очистить все элементы структуры от мусора (остаточных данных от других программ).

Обращение к элементам структуры. Чтобы записать или извлечь данные нам надо обратиться к конкретному элементу объекта структуры. Для этого применяется операция принадлежности . (punto): firstWoman.età = 23; Надо нам внести данные о возрастепишем имя объекта структуры, за ним . (punto) и далее имя элемента структуры, в котором должно храниться количество лет модели. Чтобы сохранить имяиспользуем библиотечную функцию strcpy_s() o strcpy() (в зависимости от вашей среды разработки).

Внимательно посмотрите на строки 36 – 38. Там мы присваиваем значения элементам вложенной структуры. per esempio: firstWoman.volume.breast = 90; Как и раньше пишем имя объекта структуры, за ним . (punto). Далее имя объекта вложенной структуры, снова . (punto). И только теперь выбираем элемент вложенной структуры breast, к которому надо обратиться.

Последнееструктуру свободно можно передавать в функцию и возвращать из функции, как и обычные переменные. Определение функции для вывода данных структуры на экран – sulle linee 45 – 54. Так как нам надо только показать данные и очень желательно их не испортить в функции, передаем структуру с использованием оператора const. Вызов функции находится в строке 40. Тут просто передаем объект структуры в функцию, указав его имя. risultato:

++ struttura, struttura C ++, struct C ++

Домашнее задание для вас: написать еще одну функцию для нашей программы, в которой пользователю предлагается вводить данные о модели с клавиатуры. Внести данные надо будет о трёх моделях и показать их на экран.

В этом видео рассказано о структурах с 4-й минуты:




В этой статье (parte) мы очень поверхностно рассмотрели структуры C++. В дополнительной статье (во второй части) о структурах еще поговорим об особенностях определения структуры, об инициализации объектов структуры, о присваивании структур с использованием операции = e che сколько памяти выделяется под объекты структур.

Per sostenere il nostro sito – cliccare sul salvadanaio e scegliere qualsiasi modo conveniente.

Newsletter nuove lezioni sulla programmazione:

8 pensieri su "Strutture in C ++. parte 1

  1. меня всегда пугают новые темы в С++. Так и со структурами ))) Страшно было и подступиться. Почитала то там, то там. Потом зашла на ваш сайткак всегда все коротко и понятно. Жду вторую часть урока о структурах. И массив структур очень интересует :)

  2. Ciao! Подскажите, а откуда взялось &Obj в 45 строке? Я думал это ссылка на переменную Obj, но она нигде не объявлена. В общем, с этим я запутался. Разъясните пожалуйста.

  3. Тут просто передаем обьект структуры в функцию, указав его имя”. Но ведь у нас имя обьекта структурыэто firstWoman, а мы передаем Obj. А если обьектов будет несколько, как передать конкретный из них?

  4. здравствуйте! я новичок, вопрос, правильно ли этот код складывает футы и дюймы?
    #includere “stdafx.h”
    #includere
    using namespace std;

    struct Distance
    {
    int feet;
    float inches;
    };

    Distance addengls(Distance, Distance);

    void engldisp(Distance);

    int _tmain(int argc, _TCHAR * Argv[])
    {
    setlocale(0, “”);

    Distance d1, d2, d3;

    cout <> d1.feet;
    cout <> d1.inches;

    cout <> d2.feet;
    cout <> d2.inches;

    d3 = addengls(d1, d2);

    cout <<endl;

    engldisp(d1); cout << " + ";

    engldisp(d2); cout << " = ";

    engldisp(d3); cout <= 12.0)
    {
    dd3.inches -= 12.0;

    dd3.feet++;
    }

    dd3.feet += dd1.feet + dd2.feet;

    return dd3;
    }

    void engldisp(Distance dd)
    {

    cout << dd.feet << "\'-" << dd.inches << "\"";

    }

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>