9
ответов

Что делает двоеточие после имени конструктора C++, делают? [дубликат]

Что делает оператор двоеточия (": "), делают в этом конструкторе? Это эквивалентный MyClass (m_classID =-1, m_userdata = 0);? класс MyClass {общественность: MyClass (): m_classID (-1), m_userdata (0) {}...
вопрос задан: 22 July 2013 10:49
6
ответов

Автоматически инициализируйте переменные экземпляра?

У меня есть класс Python, который похож на это: класс Процесс: определение __ init __ (сам, PID, PPID, cmd, FDs, достижимый, пользователь): сопровождаемый: сам. PID=PID сам. PPID=PPID self.cmd =...
вопрос задан: 6 January 2018 15:00
6
ответов

C++: Инициализировать членский указатель на пустой указатель?

У меня есть класс, который похож: класс Foo {общественность: Foo (); виртуальный ~Foo (); частный: Odp* панель;}; я хочу инициализировать панель к ПУСТОМУ УКАЗАТЕЛЮ. Действительно ли это - лучший способ сделать это? Foo:: Foo (): панель (ПУСТОЙ УКАЗАТЕЛЬ)
вопрос задан: 21 October 2010 17:52
5
ответов

Инициализация Конструктора C++ перечисляет странность

Я всегда был хорошим мальчиком при записи моих классов, добавлении префикса всех членских переменных m_: класс Тест {интервал m_int1; интервал m_int2; общественность: Тест (интервал int1, интервал int2): m_int1 (int1), m_int2 (...
вопрос задан: 20 January 2016 08:53
4
ответа

Как поймать исключение в списке инициализации? [дубликат]

У меня есть вопрос о том, как поймать исключение в списке инициализации. Например, у нас есть класс Foo, полученный из класса Панели Foo {общественность: Foo (интервал i) {бросает 0; }} класс Панель: общественность...
вопрос задан: 14 March 2010 02:44
4
ответа

Преимущества списков Инициализации

Из то, что я знаю преимуществ использования списка инициализации, - то, что они обеспечивают эффективность при инициализации участников класса, которые не являются сборкой - в. Например, Fred:: Fred (): x _ (безотносительно) {}...
вопрос задан: 21 October 2009 06:00
3
ответа

Инициализируйте защищенных участников родителя со списком инициализации (C++)

Действительно ли возможно использовать список инициализации конструктора дочернего класса для инициализации элементов данных, объявленных, как защищено в родительском классе? Я не могу заставить это работать. Я могу работать вокруг этого, но этого...
вопрос задан: 14 February 2013 17:30
0
ответов

Можно ли использовать функции-члены для инициализации переменных-членов в списке инициализации?

Хорошо, переменные-члены можно использовать для инициализации других переменных-членов в списке инициализации (с учетом порядка инициализации и т. д.). Как насчет функций-членов? Если быть точным, то...
вопрос задан: 23 May 2017 11:47
0
ответов

Почему в Java нет списков инициализаторов, как в C ++?

В C ++ вы можете использовать список инициализаторов для инициализации полей класса перед запуском конструктора. Например: Foo :: Foo (string s, double d, int n): name (s), weight (d), age (n) {// ...
вопрос задан: 26 October 2015 21:26
0
ответов

В этом конкретном случае есть разница между использованием списка инициализаторов элементов и присвоением значений в конструкторе?

Внутренне и в отношении сгенерированного кода есть ли разница между: MyClass :: MyClass (): _capacity (15), _data (NULL), _len (0) { } и MyClass :: MyClass () {_capacity = 15; _data = NULL; ...
вопрос задан: 25 July 2014 16:58
0
ответов

Списки инициализации C ++ - я не понимаю

В Эффективном C ++ сказано, что элементы данных в списке инициализации должны быть перечислены в порядке их объявления . Далее говорится, что причиной этого является то, что деструкторы для ...
вопрос задан: 29 April 2013 13:24
0
ответов

Порядок вызова конструктора базового класса из списка инициализации производных классов

struct B { int b1, b2; B(int, int); }; struct D : B { int d1, d2; // что технически лучше? D (int i, int j, int k, int l) : B(i,j), d1(k), d2(l) {}; b(i, j), d1(k), d2(l) // 1-я база // или D (int i, int j, ...
вопрос задан: 29 April 2013 13:14
0
ответов

Написание конструктора прототипа на C ++

Я использую квадратичное выражение, где y = ax ^ 2 + bx + c, где a, b, c - константы, а x - переменная. Вот мой класс: class quadratic { общественность: двойная оценка (const double x); void ...
вопрос задан: 19 September 2012 22:17
0
ответов

Можно ли использовать переменные-члены для инициализации других членов в списке инициализации?

Рассмотрим следующую (упрощенную) ситуацию: class Foo { частный: in evenA; четный B; четная сумма; общедоступный: Foo (int a, int b): дажеA (a-(a% 2)), дажеB (b-(b% 2)), дажеSum (evenA+evenB) ...
вопрос задан: 23 May 2012 19:27
0
ответов

Недостаток большого списка инициализации?

Мой работодатель придерживается политики использования списков инициализации в конструкторе, поскольку это более эффективно. Однако я разрабатываю класс, который имеет 45 членов данных, требующих инициализации. Per ...
вопрос задан: 9 February 2012 18:41
0
ответов

std::array initializer list initialization in initialization list

Хотя мне очень нравятся новые возможности C++11, иногда я чувствую, что мне не хватает некоторых тонкостей. Инициализация массива int работает нормально, инициализация вектора Element2 работает нормально, но ...
вопрос задан: 5 February 2012 02:54
0
ответов

Инициализация ссылки на член как NULL в C ++

Это Можно ли инициализировать ссылочный член NULL в С ++? Я пытаюсь примерно так: класс BigClass { частный: Объект m_inner; public: const Object & ReadOnly; BigClass (): ...
вопрос задан: 29 January 2012 18:56
0
ответов

Списки инициализации C ++ для нескольких переменных

Я пытаюсь научиться инициализировать списки. У меня есть простой класс ниже и я пытаюсь инициализировать список переменных. Первый месяц (int m): месяц (m) работает. Я пытаюсь сделать что-то подобное ...
вопрос задан: 29 September 2011 22:15
0
ответов

Списки инициализации в конструкторе

Я слышал, что преимущество использования списков инициализации в конструкторе будет то, что не будут дополнительных копий типа класса объекты. Но что это означает для следующего кода в классе T ...
вопрос задан: 10 September 2011 20:42
0
ответов

Как сгенерировать вектор с уникальными значениями?

У меня есть этот пример для создания уникальных объектов в вектор: #include #include <вектор> #include <алгоритм> int v = 0; структура A {A (): refValue (v ++) {std :: ...
вопрос задан: 28 July 2011 07:34
0
ответов

Почему данные назначаются без создания дополнительной копии в списке инициализации?

Parashift хорошо объясняет списки инициализации, но не объясняет, почему дополнительная копия переменной создается раньше назначение в теле ctor, но дополнительная копия не создается при назначении через ...
вопрос задан: 13 July 2011 05:30
0
ответов

Как инициализировать вектор stl объектов, которые сами имеют нетривиальные конструкторы?

Предположим, у меня есть следующий класс: class MyInteger {private: int n_; public: MyInteger (int n): n_ (n) {}; // БОЛЬШЕ ВЕЩЕЙ }; И предположим, что у этого класса нет тривиального конструктора по умолчанию ...
вопрос задан: 26 May 2011 17:45
0
ответов

C ++: Инициализация унаследованного поля

У меня вопрос об инициализации унаследованных членов в конструкторе производного класса. Пример кода: class A { общедоступные: int m_int; }; class B: public A { public: B (): m_int (0) {} ...
вопрос задан: 21 October 2010 08:45