Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Lyosha12
41 / 41 / 11
Регистрация: 02.04.2016
Сообщений: 313

Возможна ли инициализация в инициализации?

23.08.2016, 12:38. Показов 1989. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучая новый стандарт, заинтересовался: а можно ли как-то сделать массив указателей, например, на тип int, инициализируя ссылочные переменные, на которые указывали бы указатели, в одном выражении? Как-то так:
C++
1
int* pArr[] = {&(int a = 5), &(int b = 8)}
Или это слишком мерзкое извращение для компактности?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2016, 12:38
Ответы с готовыми решениями:

Инициализация (ООП, списки инициализации)
Доброго времени суток, хотелось бы узнать, как происходит процесс инициализации полей класса при использовании списков инициализации. ...

Инициализация в теле конструктора или в списке инициализации.
Здрасте. class random1 { public: random(): a(5) {} private: int a; };

Инициализация не агрегированных данных списка инициализации не допускается
Подскажите как исправить эту ошибку #include "stdafx.h" #include "iostream" using namespace std; struct Point { double...

24
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
23.08.2016, 15:47
Студворк — интернет-сервис помощи студентам
Просто если мы говорим про язык С++, а не про то, как оно там играет под капотом, то лучше все-таки оперировать названиями в их устоявшихся значениях.
Иначе будет непонимание.
1
2405 / 1937 / 763
Регистрация: 27.07.2012
Сообщений: 5,576
23.08.2016, 16:02
Цитата Сообщение от Lyosha12 Посмотреть сообщение
Разница лишь в абстракции? Работаем-то с адресами в любом случае?
Так в том и дело, что углубляться в эти детали не надо. Объект и ссылка на объект - разные вещи. Хотя бы потому, что:
C++
1
2
3
4
5
6
int a; // вот так можно
int & r; // а вот так нельзя
// ...
int func() { return 100500; }
int a = func(); // вот так можно
int & r = func(); // вот так нельзя
Это по сути разные типы, если можно так выразиться, хотя они и допускают практически одинаковое обращение.
1
 Аватар для Lyosha12
41 / 41 / 11
Регистрация: 02.04.2016
Сообщений: 313
23.08.2016, 16:10  [ТС]
Цитата Сообщение от John Prick Посмотреть сообщение
Так в том и дело, что углубляться в эти детали не надо. Объект и ссылка на объект - разные вещи. Хотя бы потому, что:
C++
1
2
3
4
5
6
int a; // вот так можно
int & r; // а вот так нельзя
// ...
int func() { return 100500; }
int a = func(); // вот так можно
int & r = func(); // вот так нельзя
Это по сути разные типы, если можно так выразиться, хотя они и допускают практически одинаковое обращение.
С этой стороны да, можно такое заключить, наверное. Надо узнать мнение преподавателя.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
23.08.2016, 16:45
Цитата Сообщение от John Prick Посмотреть сообщение
C++
1
int & r = func(); // вот так нельзя
C++
1
const int & r = func(); //а вот так можно
0
 Аватар для Lyosha12
41 / 41 / 11
Регистрация: 02.04.2016
Сообщений: 313
14.09.2016, 17:51  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Внимание, смертельный номер (дома не повторять):
C++
1
2
3
4
 int  arr[] =
     {
       new(alloca(sizeof(int))) int(5), new(alloca(sizeof(int))) int(8)
     };
Указатели не протухнут до выхода из scope. Правда функция alloca не стандартная, но присутствует почти везде.
PS. Естественно все вышеописанное - шутка, не надо такое писать.
Возвращаюсь к старой теме. В виду особенностей программы нашего университета, мне нельзя использовать что-то типа шаблонных классов и даже структур. Поэтому, вместо вектора, cin.peek() и других вкусностей C++, меня заставляют использовать голые указатели, голые char-массивы и всё в таком деревенском духе. Так вот.

Мне нужно считать последовательность строк char и int следом. Дабы не удалять тестовые данные огромной длинны, прошу подсказать: как создать 80, например, массивов из char на стеке? Я, конечно, могу создать 80 массивов, а потом работать с массивом указателей на них, но огромного списка "char ... name79[256]" хочется избежать.

Прошу подсказать как это можно сделать. И, да, нет ли аналога размещающего new в подмножестве C++ - C?

// Проблема решена немного проще: создаю массив char names[80][256], а потом в цикле переприсваиваю указатели на 80 строк. Но можно ли проще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2016, 17:51

Инициализация в теле конструктора или в списке инициализации, есть ли разница в сгенерированном коде?
Инициализация в теле конструктора или в списке инициализации - большая ли разница в сгенерированном коде? И есть ли она вообще?

Инициализация полей объекта в заголовочном файле против списка инициализации
Говорят, что делать так не хорошо //.h class Foo { int intField = 5; public: Foo(); };

Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных
Что за предупреждение вылезает? Как исправить? (16 строка): warning C4244: инициализация: преобразование "__int64" в...

Возможна ли инициализация объекта класса в момент передачи параметра в
Пример конструкции, которую я хочу заставить работать Call Me.addButton(new makeAgreementButton()) Не работает, а очень бы хотелось...

Возможна ли инициализация связного списка в функции void (void)?
Всем привет. В связи с полученным в универе заданием возник вопрос, а возможна ли в принципе инициализация связного списка с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru