Возможно, вы работали с переменными типа списка на многих языках программирования, которые будут использоваться в коде. Списки — одна из немногих переменных структуры данных, используемых для одновременного хранения более одного значения. Однако использовали ли вы список для инициализации некоторых членов данных класса во время кодирования? Списки инициализаторов — это те структуры данных, которые используются в программировании для инициализации некоторых членов данных определенного класса. Если вы еще этого не сделали и ищете что-то подобное, то это руководство по статье подарит вам совершенно новый опыт. В этой статье будет продемонстрировано несколько простых примеров, чтобы увидеть функцию использования списков инициализаторов в C ++. Если вы работаете в системе Ubuntu 20.04, в системе должен быть настроен компилятор G ++. Начните с запуска «терминального» приложения в системе Ubuntu.
Пример 1
Начните свой первый пример C ++ для списка инициализаторов с создания нового документа C ++. Четное зеленое слово «касание» можно использовать здесь для создания файла с именем «initlist.cc». Вы можете найти этот файл в домашней папке, открыв проводник на боковой панели приложения в Ubuntu 20.04. Редактор GNU Nano находится здесь, чтобы помочь и запустить файл «initlist.cc». Ваш файл будет быстро открыт в редакторе в оболочке:
Код C ++ должен содержать в себе стандартное пространство имен и поток «io», как мы это сделали ниже. Класс «Test» инициализируется двумя членами закрытых данных, «a» и «b». Список инициализаторов использовался с конструктором открытого типа «Test ()» для создания списка обоих членов данных «a» и «b». Двоеточие использовалось для разделения конструктора и списка инициализаторов. Затем две определяемые пользователем функции, то есть geta () и getb (), инициализируются для получения значений для обоих членов данных отдельно от списка инициализаторов, используемого с конструктором, и возврата результата в основную функцию. На этом класс заканчивается, и запускается функция main (). В методе main () мы создали объект «t» класса «test». Объект принимает два параметрических значения целочисленных типов,
После этого используются стандартные предложения cout для отображения обоих значений элементов данных в оболочке с использованием объекта «t» для вызова в нем функций «geta ()» и «getb ()». Здесь основная функция закрывается, и код заканчивается. Сохраните свой код и запустите его в оболочке:
Мы скомпилировали предыдущий код с помощью пакета компилятора G ++. При выполнении у нас есть значения обоих элементов данных отдельно в оболочке:
Пример 2
В нашем втором примере мы будем использовать список инициализаторов для инициализации некоторых нестатических членов данных константного типа в коде C ++. После пространства имен класс с именем «New» был инициализирован с помощью целочисленной переменной «n» частного константного типа. Функция конструктора открытого типа используется вместе со списком инициализаторов для инициализации постоянного члена данных «n». Новая функция «get ()» для целочисленного типа возврата была использована для возврата значения элемента данных «n» в основную функцию. Функция main () создает объект n1 класса «New», передавая ему значение «13» в качестве аргумента.
Конструктор будет вызван, и список инициализаторов установит значение элемента данных «n». Функция get () была вызвана в предложении cout для отображения установленного значения элементов данных в оболочке с использованием объекта «n1». На этом основная функция и программы заканчиваются:
Мы используем список инициализаторов для инициализации значения для некоторых нестатических постоянных членов данных в C ++. Вывод этого кода показывает постоянное значение 13 в оболочке:
Пример 3
Пользователи также могут использовать список инициализаторов с конструктором для инициализации некоторых элементов ссылочных данных. В классе «New» мы использовали ссылочную переменную «n» целочисленного типа. Конструктор общедоступного типа использует список инициализаторов для инициализации элемента ссылочных данных некоторым значением. Функция «get ()» снова используется для получения значения из списка инициализаторов и возврата его в терминал. В основной функции мы инициализировали целое число «a» со значением 13.
Объект класса «n1» был передан с переменной «a», и конструктор будет вызываться для инициализации элемента ссылочных данных с использованием списка инициализаторов. Оператор cout получает инициализированное значение члена ссылочных данных с помощью метода «get ()» с помощью объекта «n1». Переменная «a» была обновлена с новым значением, то есть 23. Оператор cout снова используется для получения обновленного значения из функции get (). Переменная «a» связана со ссылочной переменной «n». Итак, каждый раз, когда мы обновляем значение, оно будет выводить новое значение в оболочке:
Сначала скомпилируйте код, а затем выполните его. Он выводит первое значение ссылочной переменной, а затем обновленное значение в оболочке. Вот как работает список инициализаторов для членов ссылочных данных:
Пример 4
Список инициализаторов также можно использовать для инициализации объекта при работе более чем с одним классом в C ++. Итак, мы использовали два класса, один и два, в нашем недавно созданном коде. Первый класс с именем «One» содержит целочисленную переменную «val». Он также включает прототип определения функции-конструктора «One», принимающей некоторое целочисленное значение. Класс закрыт, и в нем нет конструктора по умолчанию. Конструктор был инициализирован вне этого класса «a», получая значение целочисленного типа напрямую из основной функции. Это значение было отображено с помощью оператора cout с использованием в нем переменной «val». Другой класс, «Два», был определен с объектом класса «Один», т. Е. «А». Этот класс также содержит прототип определения конструктора.
После этого класса мы использовали его конструктор класса вне его, используя список инициализаторов, чтобы напрямую получить значение для объекта «a» класса «One». Оператор cout указывает, что мы работаем в конструкторе класса «Two». Внутри основной функции мы создали объект класса «Two» и передали ему значение 13 в его список инициализаторов, содержащийся в его конструкторе. Этот список инициализаторов вызовет объект «a» класса «One» и затем передаст значение конструктору класса «One». Конструктор будет выполнен, а значение будет сохранено в переменной «val» и отображено в оболочке. Управление вернулось конструктору класса Two, и будет выполнен оператор cout:
Взамен мы получили следующий результат. Он выводит значение переменной «val» в оболочку вместе с утверждением, что она выполнялась в конструкторе класса «One» или «Two».
Заключение
Эта статья содержит несколько примеров использования списков инициализаторов в программах на C ++. Мы видели использование списка инициализаторов для инициализации простых членов данных, членов данных константного типа, ссылочных элементов данных и инициализации объекта.