Sdílet prostřednictvím


Převody

Objekty typu dané třídy lze převést na objekty jiného typu.Důvodem je vytvoření objektu typu cílové třídy z třídy typu zdroje a výsledek kopírování na cílový objekt.Tento proces se nazývá převod pomocí konstruktoru.Objekty lze převést pomocí funkce převodu zadaných uživatelem.

Při standardní (popsané v Standardní) nelze zcela převést na typ třídy, kompilátor z daného typu lze vybrat uživatelem definované převody k dokončení úlohy.Vedle typu explicitní převody převody trvat při umístění:

  • Výrazy inicializátoru není stejného typu jako objekt inicializován.

  • Typ argumentu ve volání funkce neodpovídá typu argument zadaný v deklaraci funkce.

  • Typ objektu, který se vrátil z funkce neodpovídá návratový typ zadaný v deklaraci funkce.

  • Dva operandy výraz musí být stejného typu.

  • Výraz iterace nebo výběru příkazu řízení vyžaduje jiný typ z poskytnuta.

Uživatelem definovaný převod je použita, pouze pokud je jednoznačné; jinak je generována chybová zpráva.Nejasnost se kontroluje na místě využití.Proto pokud nejsou použity funkce, které způsobují nejednoznačnosti třídy lze označit s potenciální dvojznačnosti a generovat žádné chyby.Přestože mnoho situací, v nichž vznikají nejasnosti, jsou dvě příčiny vedoucí dvojznačnosti:

  • Typ třídy je odvozena z použití dědičnosti více a nejasná, ze které základní třídy vyberte převodu (viz nejednoznačnosti).

  • Existují explicitní převod typu operátor a konstruktor pro stejný převod (viz Funkcí pro převod).

Obě převodu konstruktor a převod pomocí funkce dodržovat pravidla řízení přístupu, popsaným v Řízení přístupu členských.Řízení přístupu je testován pouze po převodu zjistí je jednoznačné.

Další informace naleznete v tématu Konstruktory převodu.

Viz také

Referenční dokumentace

Speciální funkce členů (C++)