Getter zwracający dwa typy danych.
Ostatnio zmodyfikowano 2020-11-30 23:15
Tołdi2426 Temat założony przez niniejszego użytkownika |
Getter zwracający dwa typy danych. » 2020-11-30 22:16:01 #include <iostream> using namespace std; class Wartosc { private: int wartosc; bool typ; public: Wartosc( int ); Wartosc( char ); int Setter( int ); char Setter( char ); int Getter(); };
Wartosc::Wartosc( int nowa ) { typ = false; Setter( nowa ); }
Wartosc::Wartosc( char nowa ) { typ = true; Setter( nowa ); }
int Wartosc::Setter( int nowa ) { wartosc = nowa; }
char Wartosc::Setter( char nowa ) { wartosc =( int ) nowa; }
int Wartosc::Getter() { if( typ == true ) { return wartosc; } if( typ == false ) { return( char ) wartosc; } }
int main() { Wartosc obiekt( 103 ), obiekt1( 'e' ); cout << obiekt.Getter() << endl; cout << obiekt1.Getter(); return 0; } Chodzi o to żeby getter o typie int mógł zwrócić wartość char jeśli zmienna typ zostanie w konstruktorze ustawiona na false. Jeżeli podany zostanie znak, to zostanie przekonwertowany na int w setterze, a jeżeli podana zostanie liczba to powinna zostać przekonwertowana na znak ascii w getterze. Czy jest to możliwe, a jeśli nie to w jaki sposób można to inaczej rozwiązać? |
|
DejaVu |
» 2020-11-30 22:47:09 Proponuję, abyś opisał lepiej co chcesz osiągnąć. Jeżeli chodzi Ci tylko i wyłącznie o wypisywanie wartości, to obiekt.Getter() może zwracać std::string/std::wstring, który będzie ustawiany np. w konstruktorze klasy Wartosc. |
|
pekfos |
» 2020-11-30 22:51:41 |
|
Tołdi2426 Temat założony przez niniejszego użytkownika |
» 2020-11-30 22:53:16 Tak, chodzi mi tylko o wypisanie wartości. A z przeładowaniem tego Gettera to by było możliwe? |
|
pekfos |
» 2020-11-30 23:06:10 To może napisz własny operator << który by wykrywał jakiego typu jest wartość i wypisywał ją w stosowny sposób? Wtedy cout << obiekt << endl << obiekt1;
Czy koniecznie ma być getter? Jeśli tak, to najlepiej zwracać tekst, a nie dwa różne możliwe typy. |
|
Tołdi2426 Temat założony przez niniejszego użytkownika |
» 2020-11-30 23:15:15 Tak, mam użyć gettera w zależności od pola typ, ale zrobię normalnie ze stringiem i trudno. Dzięki za pomoc. |
|
« 1 » |