![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Поясните плиз. как понять такую инициализацию объекта
class Rt { int a; float b; }; void () { Rt s = {0,0}; } можно ли так инициализировать и кому здесь присваиваются значения? |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
В точности так, как написано выше, нельзя, а вот так можно:
Ключевые слова: aggregate innitialization. Вкратце, так можно инициализировать массивы или структуры/классы без закрытых или защищенных членов, определенных пользователем конструкторов, базовых классов и виртуальных функций. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Что-то я не совсем уловил. Я так понимаю объекту присваивать значение нельзя Так всё-таки кому присваиваются значения , всем полям объекта? Т.е. если бы там было 5 полей , то можно было бы написать {0,0,0,0,0} ? А как быть если бы полями объекта были массивы , указатели ?
А как насчёт обычных ф-ций? |
|||
|
||||
| Void |
|
||||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Да.
Точно также.
Допустимо. P. S. А взять компилятор и попробовать? -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||||
|
|||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |