Описание тега in-class-initialization

2 ответа

C++11 Функция "В инициализации класса" не работает для профсоюзов

Пример минимального кода: struct B { union U { struct S {} s; int i = 100; } u; }; Теперь, если мы объявим B obj; тогда obj.u.i назначается значение мусора вместо 100, Смотрите демо здесь. (Значение мусора отличается в зависимости от флагов оптимиза…
22 июл '13 в 14:33
1 ответ

Почему я не могу сделать инициализированный в классе `const const std::string` статическим членом

У меня есть следующий рабочий код: #include <string> #include <iostream> class A { public: const std::string test = "42"; //static const std::string test = "42"; // fails }; int main(void){ A a; std::cout << a.test << '\n'; }…
27 июн '13 в 19:42
1 ответ

Python: множественное наследование, конструктор копирования, инициализация класса и () перегрузка

Я искал способ инициализировать производный класс, используя конструктор копирования и оператор (), как в C++ class Rectangle { int width, height; public: Rectangle (int,int); int area () {return (width*height);} }; Rectangle::Rectangle (int a, int …
1 ответ

С C++ я получаю указатель с 0xcdcdcdcd при создании класса - что происходит?

----------------РЕДАКТИРОВАТЬ----------------------- Я взял неправильное значение для сравнения, cdcdcdcd откуда-то пришел. У меня все еще есть свои методы, генерирующие исключения прежде, чем они будут достигнуты, но моя проблема заключается в друг…
1 ответ

Что именно является в классе инициализатором?

Я прочитал много текстов, в которых упоминался инициализатор в классе, и я искал много вопросов по stackru, однако я не нашел точного объяснения, что такое инициализатор в классе. И насколько я понял, переменная встроенного типа, объявленная вне как…
01 ноя '18 в 11:22
5 ответов

Битовые поля "инициализация в классе" приводят к "ошибке: в качестве левого операнда присваивания требуется значение l"

struct bitfield { int i = 0; // ok int j : 8 = 0; // error: lvalue required as left operand of assignment }; Каков правильный синтаксис для инициализации битовых полей с помощью функции "инициализация в классе" в C++11?
13 май '13 в 11:13
1 ответ

В инициализаторе класса по умолчанию для члена массива C++11

Как по умолчанию инициализировать массив элементов в C++11? Кажется, что я должен предоставить оценку. class Example { const char* num2letter[10]{" ", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; }; Компилирует нормально. Но если я…
22 мар '16 в 17:17
1 ответ

Прямое объявление, unique_ptr и инициализатор в классе

Я прочитал Требуется ли std::unique_ptr, чтобы узнать полное определение T? и переслать объявление с unique_ptr?, но мой вопрос более конкретен. Следующие компиляции: // Compile with $ g++ -std=c++11 -c <filename> #include <memory> class…
3 ответа

Как работает try / catch в списке инициализации?

Мы считаем, что исключение при инициализации может произойти. Поэтому мы пишем блок try / catch. int f(){ throw 1; } class A { public: A() try : _k(f()) {} catch (int) { std::cout << "Exception 1" << std::endl; } private: int _k; }; Но п…
2 ответа

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

Недавно я обнаружил, что нельзя одновременно указывать инициализацию класса и список инициализаторов. Сбой следующего кода: struct s { int i=0; }; int main() { s s1; //s1.i = 0 //s s2={42}; //fails return 0; } Если я удаляю инициализацию класса in, …
1 ответ

Inheriting-Constructors + In-Class-Initialization не тип по умолчанию конструкционных объектов терпит неудачу

Я столкнулся со следующей ошибкой в ​​моем проекте: ошибка: использование удаленной функции "C::C(int)" примечание: "C::C(int)" неявно удалено, потому что определение по умолчанию будет неверно сформировано: ошибка: использование удаленной функции '…
2 ответа

Зачем вставлять val или var в конструкторы класса kotlin

Просто изучение Kotlin В первом коде внизу есть val Ключевое слово прямо в другом коде нет, что здесь отличается, если val а также var опущен? class Person(val firstName: String, val lastName: String) { } class Person(firstName: String, lastName: St…
29 сен '18 в 09:43
2 ответа

Классовая инициализация атомарного

Почему в этом примере struct Foo { atomic<int> x = 1; }; компилятор (gcc 4.8) пытается использовать atomic& operator=(const atomic&) который удаляется (отсюда пример не скомпилируется), а здесь struct Bar { Bar() { x = 1; } atomic<i…
12 май '17 в 13:45
1 ответ

Сделана ли функция "In инициализация члена класса" в C++11?

В функции инициализации класса, которая позволяет инициализировать нормальные члены внутри самого класса, struct A { int a = 0; // error: ISO C++ forbids in-class initialization of non-const static member ‘a’ }; Это дает ошибку в последнем компилят…
26 июн '11 в 06:49
2 ответа

Почему инициализация статических элементов в классе нарушает ODR?

Существует несколько вопросов о переполнении стека в духе "почему я не могу инициализировать статические члены-данные в классе в C++". Большинство ответов цитирует стандарт, в котором говорится, что вы можете сделать; те, которые пытаются ответить, …
0 ответов

Какой смысл использовать атрибут TestIntialize, когда я могу делать все в ClassIntialize при тестировании MS?

[ClassInitialize] public static void ReportClassSetup(TestContext context) { BaseAdapter.ConnectionString = ConfigurationManager.ConnectionStrings["PremierConfig"].ConnectionString; IServiceContext serviceContext = new ServiceContextTest(); var bac…
1 ответ

Получить значение по умолчанию для инициализированного в классе члена

Есть ли способ прямого получения значения по умолчанию для члена, который был определен с помощью инициализации в классе? Например: struct Test { int someValue = 5; }; int main(int argc,char *argv[]) { auto val = declvalue(Test::someValue); // Somet…
27 окт '16 в 16:46
2 ответа

Инициализация в классе от статического члена того же типа

Является ли следующий код допустимым, например, не приводит к неопределенному поведению? struct S { int i = s.i; static S s; }; S S::s; int main() { S a; // a.i = 0 S::s.i = 42; S b; // b.i = 42 } Насколько я знаю, все переменные со статической длит…
2 ответа

Порядок, в котором поля в бине инициализируются

У меня есть такой боб: @Component @DependsOn("SomeType") Class A{ @Autowired SomeType one; String two = one.someMethod(); int three; } In my application context xml, I have: <bean id="two" class="a.b.c.SomeType"></bean> <context:compo…
3 ответа

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

Рассмотрим код: struct Foo { const char str[] = "test"; }; int main() { Foo foo; } Он не компилируется как с g++, так и clang++, выпуская по существу error: array bound cannot be deduced from an in-class initializer Я понимаю, что именно об этом, ве…
12 апр '15 в 18:45