Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / Инициализация членов класса / 9 сообщений из 9, страница 1 из 1
21.09.2020, 03:09
    #40000721
polin11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
Подскажите ответ на вопрос, не смог ничего нагуглить
Where do you initialize a non-static class member that is a reference?
1) Point of declaration only
2) Member initialization list only
3) Point of declaration and member initialization list
4) Member initialization list and body of constructor
...
Рейтинг: 0 / 0
21.09.2020, 09:33
    #40000750
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
тры
...
Рейтинг: 0 / 0
21.09.2020, 11:42
    #40000815
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
MasterZiv,

В месте объявления как ссыоку проинициалищировать?

4
...
Рейтинг: 0 / 0
21.09.2020, 11:51
    #40000822
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
alex_k
MasterZiv,

В месте объявления как ссыоку проинициалищировать?

4
Код: plaintext
1.
2.
3.
4.
struct x {
  int a;
  int &b = a;
};
...
Рейтинг: 0 / 0
21.09.2020, 12:11
    #40000834
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
alex_k
MasterZiv,

В месте объявления как ссыоку проинициалищировать?

4
Там же говорится про non-static class member. В теле конструктора не пройдет.
https://onlinegdb.com/BkU9Ty8rD
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class SQLru {
int& rInt;
public:
    SQLru(int& Value) { 
        rInt = Value; 
    }
};


int main() {
    int Val = 100500;
    SQLru sql(Val);
    return 0;
}

main.cpp: In constructor ‘SQLru::SQLru(int&)’:
main.cpp:5:5: error: uninitialized reference member in ‘int&’ [-fpermissive]
     SQLru(int& Value) {
     ^~~~~
main.cpp:3:6: note: ‘int& SQLru::rInt’ should be initialized
 int& rInt;
      ^~~~


Тогда как member initialization list проходит, даже с const.
https://onlinegdb.com/SJ45aJUBD
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class SQLru {
const int& rInt;
public:
    SQLru(const int& Value) : rInt(Value) {}
};


int main() {
    const int Val = 100500;
    SQLru sql(Val);
    return 0;
}

...Program finished with exit code 0 
...
Рейтинг: 0 / 0
21.09.2020, 13:31
    #40000868
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
Barlone
alex_k
MasterZiv,

В месте объявления как ссыоку проинициалищировать?

4
Код: plaintext
1.
2.
3.
4.
struct x {
  int a;
  int &b = a;
};


век живи век учись :)
имеет практическое применение такое?
...
Рейтинг: 0 / 0
21.09.2020, 13:35
    #40000870
Инициализация членов класса
может раньше было 2 члена, а теперь 1
чтобы всю прогу не переделывать, можно так
...
Рейтинг: 0 / 0
21.09.2020, 16:03
    #40001013
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
Ответ получен. Чего-вы добрасываете? Только хотите запутать юного начинающего джуниора.
...
Рейтинг: 0 / 0
21.09.2020, 16:11
    #40001020
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Инициализация членов класса
mayton
Ответ получен. Чего-вы добрасываете? Только хотите запутать юного начинающего джуниора.
Самое время закрыть тему?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Инициализация членов класса / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]