Описание тега member-initialization
2
ответа
Порядок списка инициализации участника
После многократного упрощения кода я обнаружил, что причиной является следующая проблема. class B { public: B(const int x) :_x(x) {} const int _x; }; class C { public: C(const B& b) : _b(b), _b2(_b._x) {} B _b2; // line 1 const B& _b; // lin…
27 янв '17 в 03:23
2
ответа
Вложенный класс. ошибка: ожидание объявления параметров - для внутреннего экземпляра класса
Я начал изучать вложенные классы в C++, я попробовал быстрый код, который я вставил сюда, чтобы посмотреть, как работают вложенные классы. Но компиляция заканчивается некоторыми ошибками, которые я не могу понять. Файл: check.cpp class Outside{ publ…
12 мар '16 в 08:19
5
ответов
Нелегальная инициализация участника
Я использую этот довольно простой класс без какого-либо наследования. class A { int a; int b; public: A(int x, int y) { a = x; b = y;} A() :A(0,0){}; ~A(){}; } ; int main () { A a1, a2(5, 7) ; } Я получаю эту ошибку. ошибка C2614: "A": недопустимая …
20 окт '12 в 11:40
3
ответа
Синтаксис списка инициализаторов в списке инициализаторов членов с использованием C++11
Я проходил " Путешествие по C++", и Бьярне использует функцию списка инициализаторов C++11 при инициализации членов в конструкторе, например так (используя фигурные скобки): A a; B b; Foo(Bar bar): a{bar.a}, b{bar.b} {} Это, однако, не компилируется…
07 ноя '14 в 15:16
4
ответа
Как правильно воздержаться от CS2512
Пожалуйста, помогите мне со следующей проблемой: У меня есть следующие классы: class ChemicalElement { private: std::string _name; void Init(const std::string& name); public: ChemicalElement(const std::string& name); ChemicalElement(const Ch…
24 янв '10 в 06:46
1
ответ
C++0x Инициализация члена без конструктора
В N3257 я нашел пример использования инициализирующих элементов без конструктора, и это нормально. Я думаю, это возможно, потому что это POD. template<typename T> struct adaptor { NonStdContainer<T>* ptr; // <- data member T* begin() …
27 авг '11 в 16:00
2
ответа
Агрегированная инициализация членов в C++14
Имея эту структуру: struct A { struct B { int a = 21; int b; int c = 22; int d; int e = 23; }; B b1 = { 11, 12 }; B b2 = { 11, 12, 13 }; int x; }; И заявляя: A a = { { 1, 2, 3, 4 }, { 1 }, 5 }; Согласно Clang (3.8.0) и GCC (5.4.0), это значения 8 во…
10 янв '17 в 16:46
3
ответа
Экземпляр класса внутри объявления класса с постоянными аргументами
У меня возникают проблемы с объявлением экземпляров класса с постоянными аргументами внутри определения другого класса. class Foo { private: const int m_a, m_b; public: Foo(int a, int b) : m_a(a), m_b(b) {} }; class Bar { public: Foo foo1(1,2); Foo …
21 апр '13 в 22:02
2
ответа
Попытка использовать конструктор заполнения вектора при инициализации члена класса не удалась. Что случилось?
При использовании конструктора заполнения std::vector (любой формы) с функцией инициализации члена класса C++11 следующий код не может быть скомпилирован (в clang/llvm 3.6): #include <vector> class Foo { std::vector<char> buf_(10); //com…
27 июл '15 в 22:10
2
ответа
Должны ли члены класса Qt данных класса C++ инициализироваться перед использованием?
Существует множество лучших практик программирования на С ++, которые предлагаются во многих статьях и книгах. Ниже приводится подмножество, относящееся к членам данных класса C++: Убедитесь, что объекты инициализированы перед использованием. Убедит…
12 мар '16 в 02:17
3
ответа
Шаблоны для сброса объектов в исходное состояние
Предположим, у меня есть объект с элементом, который дорого построить, и потребность в reset() функция, которая сбрасывает его в исходное состояние: struct Example { // option 1: efficient, but need to duplicate initialization logic of reset() Examp…
27 июл '15 в 09:08
4
ответа
Существуют ли два типа списков инициализаторов членов в C++?
Я видел два разных способа использования списков инициализаторов членов. Первый такой: class ClassName { public: arg_type_1 varName1; arg_type_2 varName2; // Constructor. ClassName(arg_type_1 arg_name_1, arg_type_2 arg_name_2) : varName1(arg_name_1)…
15 авг '13 в 08:20
3
ответа
Ошибка C2064 с использованием <функционала> и <bind>
Я действительно не знаю, что здесь делать. Каждый ответ, который я ищу, имеет синтаксис, который я просто не понимаю. ошибка: Error 1 error C2064: term does not evaluate to a function taking 1 arguments Я использую указатель функции в конструкторе х…
09 ноя '13 в 19:57
1
ответ
Хэш-таблица не принимает функцию, переданную в конструктор в списке инициализации члена
У меня есть шаблон хеш-таблицы, который я написал для класса. У меня есть проект из-за использования этой хэш-таблицы. Он принимает целочисленное значение без знака для инициализации количества сегментов, которые он имеет, а также хеш-функцию для ук…
09 ноя '13 в 18:46
1
ответ
Есть ли неповторяющийся способ позволить программисту выбирать между копированием и перемещением семантики для инициализации члена?
Я хочу иметь возможность инициализировать каждое поле класса, используя семантику перемещения или семантику копирования. Все конструкторы будут использовать по существу один и тот же код для конструирования, например так: LogRecord::LogRecord(const …
16 апр '15 в 14:03
2
ответа
Лучший способ организовать списки инициализаторов в конструкторах
Иногда перед инициализацией необходимо выполнить некоторую обработку аргументов конструктора класса. const члены или те, которые не имеют конструктора по умолчанию. Например, в Java я могу сделать это (не спрашивайте почему, это всего лишь пример): …
23 май '17 в 08:42
3
ответа
Сложные операторы в части инициализации члена?
У меня есть это: struct myClass{ multiset<string,binPred<string> > values ; myClass(const char param1, const char param2) : values(less<string>()) { } } ; Мне нужно инициализировать values член с другим функтором в зависимости от з…
13 апр '09 в 13:36
1
ответ
D - Установить значение по умолчанию для члена структуры, который является многомерным статическим массивом
Я использую язык программирования D. Я хочу иметь struct содержащий многомерный статический массив ints изначально заполнен ненулевым значением (в моем случае ноль является допустимой записью, и я хочу изначально пометить все записи как недействител…
06 июл '14 в 22:12
0
ответов
Можно ли инициализировать объект в функции класса, а не в конструкторе
Эй, я смотрю, есть ли способ для меня инициализировать объект-член в функции класса. Это значит, что я не хотел бы использовать список инициализаторов членов. Я не хочуFoo::Foo(): bar(), barBar(){} но хочу: Foo::setup(){bar(); barBar() } Надеюсь, вы…
07 сен '16 в 19:05
2
ответа
Выполните проверки перед списком инициализации
У меня есть член класса A в моем собственном классе, конструктор которого принимает несколько параметров. Я пересылаю параметры моего собственного класса в конструктор класса A. Но важно, чтобы эти параметры были правильными, поэтому мне нужно прове…
01 янв '12 в 23:24