170 похожих чатов

Привет. Почему в списках инициализации нельзя использовать копирующую инициализацию? Я

не могу сделать так:

class Foo {

int boo;
double goo;

public:
Foo() : boo = 5, goo = 3.1 {}
}

Разрешены только такие способы: boo(5), goo(3.1) или boo{5}, goo{3.1}

11 ответов

16 просмотров

Так нельзя, можно не в конструкторе: int boo = 5;

Andrii- Автор вопроса
Anatoly Shirokov
Так нельзя, можно не в конструкторе: int boo = 5;

Это да, но мне интересно почему они её там запретили

мне кажется, тут даже чисто из-за синтаксиса пришлось бы лексер и парсер в компиляторе усложнять.

А зачем может понадобиться именно через = инициализировать?

Andrii- Автор вопроса
d7d1cd
А зачем может понадобиться именно через = инициали...

Мне не нужно, пока что. Но мне непонятно почему там это запрещено.

Andrii
Мне не нужно, пока что. Но мне непонятно почему та...

Напишите Страуструпу, так получите более точный ответ

Синтаксис такой,

Andrii- Автор вопроса
Ilya Zviagin
Синтаксис такой,

А это никаких ограничений не создаёт? Имею ввиду, никак ли это не ограничит то, как мы можем инициализировать константы, например. Я пока ещё плохо понимаю отличие между разными типами инициализации, поэтому не могу понять.

Andrii
А это никаких ограничений не создаёт? Имею ввиду, ...

Прямая и юниформ инициализации не дают ограничений в списках инициализации. Очень удобно: struct buffer { std::string field; buffer(std::size_t count, char character) : field(count, character) {} }; Но при использовании юниформ инициализации есть свои нюансы

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
28
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Кстати, кто-нибудь извращался с делфи под вайном?
Serjone
11
Карта сайта