Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rozdział2
NowoczesnyC++
Listing2-2.Użyciejednolitegoinicjowaniawcelurozwiązaniaproblemuvexingparse
classMyClass
{
private:
intm_Member;
public:
MyClass()
=
default;
MyClass(constMyClass&rhs):default;
};
intmain()
{
MyClassobjectA;
MyClassobjectB{MyClass{}};
return0;
}
Jakwidzimywlistingu2-2,jednoliteinicjowaniezastępujezwykłenawiasyklamrowymi.
Tazmianaskładniinformujekompilator,żezamierzamyużywaćinicjowaniaujednoli-
conegodoinicjowanianaszejzmiennej.Składniatamożebyćużywanadoinicjowania
zmiennychniemalwszystkichtypów.
UwagaWpoprzednimakapiciestwierdziliśmy,żeinicjowanieujednoliconemożebyćstosowane
doinicjowanianiemalwszystkichzmiennych.Mogąpojawićsięproblemyprzyinicjowaniuagrega-
tówlubprostych,starychtypówdanych;jednaknarazieniemusimysięnimimartwić.
Innąkorzyściązestosowaniaujednoliconegoinicjowaniajestuchronieniesięprzedwy-
stępowaniemkonwersjizawężających.Kodpokazanywlistingu2-3niezdołasięskom-
pilowaćprzyużywaniuinicjowaniaujednoliconego.
Listing2-3.Użycieinicjowaniaujednoliconegowceluuniknięciakonwersji
zawężających
intmain()
{
intnumber{0};
charanother{512};
28