Доброго времени суток.
Имеем обычные структуры:
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-м вариантом, то присваивание остальных можно оставить и первым вариантом, почему-то перестает ругаться и все корректно присваивает
инфу в нете почитал, на форуме поискал — много всего, но толком не нашел