Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Infernalboy
3 / 3 / 1
Регистрация: 30.09.2014
Сообщений: 54
#1

Инициализация полей объекта в заголовочном файле против списка инициализации - C++

28.12.2017, 08:19. Просмотров 118. Ответов 4

Говорят, что делать так не хорошо

C++
1
2
3
4
5
6
7
8
9
10
11
12
//.h
class Foo {
       int intField = 5;
    public:
       Foo();
};
 
//.cpp
 
Foo::Foo{
 
}
а лучше так
C++
1
2
3
4
5
6
7
8
9
10
11
class Foo {
       int intField ;
    public:
       Foo();
};
 
//.cpp
 
Foo::Foo : intField(5){
 
}
Вопрос: так ли это если да то почему, и если нет то тоже почему?
Слышал что-то о выравнивании, но это не точно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2017, 08:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инициализация полей объекта в заголовочном файле против списка инициализации (C++):

Избавление от списка инициализации - C++
На днях написал несколько классов с внушительными конструкторами. Наследовавшие от них классы обязаны вызывать эти конструкторы в списках...

Функция в заголовочном файле - C++ Builder
Передача данных в заголовочный файл для обсчета: Я создал переменную типа данных класса: C Boris; ...

Прототип функции в заголовочном файле - C++ Builder
Всем привет. Если объявляю прототип функции в заголовочном файле, пишет ошибку: Unresolved external ... referenced from..., а когда пишу...

Region и End_Region в заголовочном файле - C++ Builder
Доброго времени суток! Очень нужна помощь по блокам: #pragma region name <...code...> #pragma end_region Возможно ли...

В каком заголовочном файле находится delay (BCB6)? - C++ Builder
В справочной системе C++ Builder 6 Нашел вот этот пример использования функции clock и выдает ошибку не находит функцию delay. Это глюк...

Функции, которые оперируют с элементами формы в заголовочном файле - C++ Builder
Собственно, что нужно подключить, чтобы заголовочный файл видел мою форму? (для примера, в функции должны вызываться элементы формы) ...

4
hoggy
6765 / 2950 / 507
Регистрация: 15.11.2014
Сообщений: 6,630
Завершенные тесты: 1
28.12.2017, 16:02 #2
Цитата Сообщение от Infernalboy Посмотреть сообщение
Вопрос: так ли это
нет.
это не так.

Цитата Сообщение от Infernalboy Посмотреть сообщение
Говорят, что делать так не хорошо
врут
1
Почтальон
Модератор
462 / 390 / 76
Регистрация: 22.03.2015
Сообщений: 3,025
Завершенные тесты: 1
28.12.2017, 20:30 #3
Первоначальные значения должны заполняться в конструкторе, инициализация в описании класса не совсем комильфо с точки зрения этики программирования. ИМХО
1
hoggy
6765 / 2950 / 507
Регистрация: 15.11.2014
Сообщений: 6,630
Завершенные тесты: 1
29.12.2017, 12:33 #4
Цитата Сообщение от Почтальон Посмотреть сообщение
не совсем комильфо
гуманитарий?
0
Почтальон
29.12.2017, 12:52     Инициализация полей объекта в заголовочном файле против списка инициализации
  #5

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
гуманитарий?
нее, просто выражение нравится

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2017, 12:52
Привет! Вот еще темы с ответами:

Инициализация полей класса - Visual C++
Привет! Не могу инициализировать в конструкторе поля класса. Интерфейс класса в отдельном файле. Компилятор ругается, пишет, что поля,...

Как добраться до полей объекта? - Visual C++
Есть у меня такая проблема: Присутсвует вот такое объявление: class CMyDoc : public CDocument { protected: CMyDoc(); ...

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

С - С++ enum в заголовочном файле - C++
ситуация примерно такая компилятор gcc есть заголовочный файл в нем определен список enum этот заголовочный файл инклудится...


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

Или воспользуйтесь поиском по форуму:
5
29.12.2017, 12:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.