powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Инициализация членов класса
9 сообщений из 9, страница 1 из 1
Инициализация членов класса
    #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
Инициализация членов класса
    #40000750
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тры
...
Рейтинг: 0 / 0
Инициализация членов класса
    #40000815
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

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

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

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

4
Код: plaintext
1.
2.
3.
4.
struct x {
  int a;
  int &b = a;
};
...
Рейтинг: 0 / 0
Инициализация членов класса
    #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
Инициализация членов класса
    #40000868
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone
alex_k
MasterZiv,

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

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


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


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