инициализация структур
От: MASReady  
Дата: 20.12.13 07:11
Оценка:
Доброго времени суток.
Имеем обычные структуры:
struct s1{
 int  ci;
 char cc[12];
 long cl;
} e1;

struct s2{
 int  ci;
 long cl;
} e2;


инициализировать их нужно позже,
такой вариант не прокатывает:

e1={1,"qqq",2};
e2={1,2};

//ошибки:
//замечание: candidate is main()::s1& main()::s1::operator=(const main()::s1&)
//замечание: candidate is main()::s2& main()::s2::operator=(const main()::s2&)
//ошибка: no match for 'operator=' in 'e1={1,"qqq",2}'
//ошибка: no match for 'operator=' in 'e2={1,2}'

а такой хавает, все корректно присваивается:

e1=(s1){1,"qqq",2};
e2=(s2){1,2};


правильный ли это вариант, или можно/нужно инициализировать как-то по другому?

причем иногда когда присваивание первой структуры пишешь 2-м вариантом, то присваивание остальных можно оставить и первым вариантом, почему-то перестает ругаться и все корректно присваивает

инфу в нете почитал, на форуме поискал — много всего, но толком не нашел
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.