Sdílet prostřednictvím


Nejasnost rozlišení

Chcete-li provést explicitní převody z jednoho typu na jiný, musíte použít nádech, název požadovaného typu.Některé syntaktické nejednoznačnosti zadejte výsledek nádech.Následující typ cast funkce styl je dvojznačný:

char *aName( String( s ) );

Nejasné, zda je funkce prohlášení nebo prohlášení objektu pomocí funkce stylu nádech jako inicializátoru: ji nelze deklarovat funkci vrácení typu char * , která má jeden argument typu String, nebo ji nelze deklarovat objekt aName a inicializace s hodnotou s cast zadejte String.

Jestliže prohlášení lze považovat za platnou funkci prohlášení, se zachází jako takové.Pouze v případě, že nemůže být případně deklarace funkce –, pokud je syntakticky nesprávný – prohlášení zkoumáno zobrazit, pokud je typ osazení stylu funkce.Proto kompilátor považuje prohlášení se prohlášení o funkci a ignoruje závorek identifikátor s.Na druhé straně, příkazy:

char *aName( (String)s );

and

char *aName = String( s );

jsou jasně prohlášení objektů a uživatelem definovaný převod z typu String k zadání char * je možné provést inicializaci aName.

Viz také

Referenční dokumentace

Abstraktní C++ Declarators