Konwersje
Obiekty typu danej klasy można konwertować na obiekty innego typu.Polega to na konstruowaniu obiektu typu klasy docelowej typu klasy źródłowego i kopiowanie wynik do obiektu docelowego.Ten proces jest nazywany konwersji przez konstruktora.Obiekty można skonwertować także funkcje konwersji dostarczone przez użytkownika.
Podczas konwersji standardowych (opisane w Konwersji standardowych) nie można całkowicie Konwertuj z danego typu na typ klasy, kompilator można wybrać zdefiniowane przez użytkownika konwersje ukończenie zadania.Oprócz konwersje typu jawne konwersje podjąć jeżeli:
Wyrażenia inicjatora nie jest tego samego typu co obiektu, jego zainicjowaniem.
Typ argumentu w wywołaniu funkcji niezgodny z typem argumentu określonych w deklaracji funkcji.
Typ obiektu, są zwracane przez funkcję nie pasuje zwracany typ określony w deklaracji funkcji.
Dwa operandy wyrażenia musi być tego samego typu.
Wyrażenie kontrolowanie instrukcji iteracji lub wybór wymaga innego typu niż ten, dostarczone.
Zdefiniowana przez użytkownika konwersja jest stosowane tylko wtedy, gdy jest jednoznaczne; w przeciwnym razie jest generowany jest komunikat o błędzie.Dwuznaczność sprawdza się w punkcie użycia.W związku z tym jeśli nie są używane funkcje, które powodować niejasności, klasa może być wyznaczona z potencjalnych niejasności i generują błędy.Chociaż istnieje wiele sytuacji, w których powstają niejasności, są dwie główne przyczyny niejasności:
Typem klasy pochodzi z użycia wielokrotne dziedziczenie i nie jest jasne, z których klasy bazowej, aby wybrać konwersji (zobacz niejednoznaczności).
Istnieją operatora konwersji jawnej typu i konstruktora dla tej samej konwersji (zobacz Funkcje konwersji).
Zarówno konwersji przez konstruktora i funkcje konwersji przez konwersji przestrzegać zasad kontroli dostępu, jak opisano w Kontroli dostępu Członkowskie.Kontrola dostępu jest badany tylko po konwersji okazuje się być jednoznaczne.
Aby uzyskać dodatkowe informacje, zobacz Konwersji konstruktory.