Structures en C ++. partie 1




структуры с++, структуры c++Изучив структуры C++ в этом уроке, перед вами по настоящему приоткроется пространство для творчества в программировании. Avant cette leçon,, мы могли использовать стандартные (встроенные) datatypes для переменных в своих программах (int, flotte, carboniser, bool). Сейчас же мы научимся самостоятельно создавать что-то вроде своего собственного типа данных. Это делается при помощи структур.

Как всегда, в начале статьи разберемся зачем нам это может понадобиться. LET, необходимо сохранить данные о девушке модели. Нам надо хранить о ней такие данные: nom, âge, рост, вес, объёмы и знание/незнание английского языка. Comme vous pouvez le voir, все данные о модели будут отличаться типами: имя надо хранить в массиве типа char, объемыв переменных типа int, для отметки о владении английским подойдет переменная типа bool… Il se trouve, что для хранения этих данных, tableau мы никак не сможем использовать, так как он хранит однотипные данные. Используя структуры появляется возможность сгруппировать все эти данные, условно объединенные логической связью, в одно целое. regarder:

структуры с++, структуры c++, struct c++

Для определения структуры используется ключевое слово struct. После него указывается дескриптор (имя нового типа данных). Имя дает программист. Оно подчиняется тем же правилам, что и имена переменных. У нас дескриптор структуры – il Femme merveilleuse. В фигурных скобках размещаются элементы (membres) structure – именованные переменные или массивы любого типа данных С++. Структура может хранить элементы разных типов. Как видите в нашей структуре есть элементы типа int, carboniser et bool. Завершается определение структуры точкой с запятой ;

après, как структура определена, мы можем создавать переменные типа структурыобъекты структуры. Создаются они точно так же, как и переменные типа bool, int, carboniserПишем дескриптор (“тип”) и даем имя объекту структуры. Например в Principal-функции создаем переменную
Femme merveilleuse firstWoman; Здесь Femme merveilleuse будет играть роль типа, et firstWomanроль объявленной переменной.

Элементом структуры также может быть объект другой, определённой ранее, structure. То есть структуры можно вкладывать одну в другую. Рассмотрим пример. В нём также разберемся, comment accéder aux éléments de la structure, чтобы записать в них данные, par exemple, и затем показывать на экран.

Идем по порядку. lignes 4 – 9: определение структуры Taille. Она содержит три элемента типа int, которые будут хранить замеры моделиобъемы груди, талии, бёдер. Эту структуру мы вложим в расположенную под ней структуруFemme merveilleuse. Она содержит элементы разных типовсимвольный массив, переменные типа int, bool. En ligne 17 objet déclaré volume type Taille. Это и есть вложение структуры. В 21-й строке находится прототип функции, которая будет отображать данные структуры Femme merveilleuse l'écran. Об этой функции поговорим ниже, когда дойдем до её определения.

rangée 27 – объявление объекта структуры: Femme merveilleuse firstWoman = {}; Тут понятно: Femme merveilleuse – descripteur (тип), firstWoman объект структуры. Такая запись = {}; установит все значения элементов структуры Femme merveilleuse в ноль. В том числе, всем элементам символьного массива будет присвоено значение \0 . Так как объект volume является элементом структуры Femme merveilleuse, его элементам так же будут присвоены нули. То есть такая запись позволит очистить все элементы структуры от мусора (остаточных данных от других программ).

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

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

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

структуры с++, структуры c++, struct c++

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

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




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

Pour soutenir notre site – cliquez sur la tirelire et choisir un moyen pratique.

Bulletin de nouvelles leçons:


Je suis d'accord pour recevoir des messages de purecodecpp.com sur mon e-mail

date
page
Structures en C ++. partie 1
évaluation
5

8 réflexions sur "Structures en C ++. partie 1

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

  2. Здравствуйте! Подскажите, а откуда взялось &Obj в 45 rangée? Я думал это ссылка на переменную Obj, но она нигде не объявлена. en général, с этим я запутался. Разъясните пожалуйста.

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

  4. здравствуйте! я новичок, вопрос, правильно ли этот код складывает футы и дюймы?
    #comprendre “stdafx.h”
    #comprendre
    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 << "\"";

    }

Laisser un commentaire

Placez le code dans les balises: <pre class="lang:c ++ décodage:true ">VOTRE CODE</pré>