• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Można zmienić kilka konstruktorów w jeden?

+1 głos
55 wizyt
pytanie zadane 22 czerwca w C i C++ przez Daaa22 Dyskutant (7,740 p.)

Mamy klasę która potrzebuje liczby całkowitej w konstruktorze, ale chce żeby można było tam wrzucić nie tylko int, ale też long, long long, ogólnie wszystkie typy liczbowe które zawierają liczby całkowite. I załóżmy że dla każdego z tych typów (niezależnie czy signed czy unsigned) kod jest identyczny. Da się to zrobić jednym konstruktorem, czy muszę pisać

class Klasa
{
public:
Klasa( int n )
{//kod
}
Klasa( long n )
{//ten sam kod
}
Klasa( long long n )
{//ten sam kod
}
Klasa( unsigned int n )
{//ten sam kod
}
//i tak dalej
}

?

1 odpowiedź

+3 głosów
odpowiedź 22 czerwca przez Apled Mądrala (6,480 p.)
wybrane 22 czerwca przez Daaa22
 
Najlepsza

Możesz sobie pomóc szablonami

template<typename T>
class Klasa
{
private:
    T x;
public:
    Klasa(T n)
    {
        // kod
        x = n;
    }
};

int main()
{
    Klasa<int> k1(3);
    Klasa<long> k2(3);
    Klasa<long long> k3(3);
    Klasa<unsigned int> k4(3);
    Klasa<float> k5(3.14f);
}

gdzie T to tylko nazwa, możesz sobie zamiast tego wstawić co chcesz.

Podobne pytania

0 głosów
2 odpowiedzi 269 wizyt
pytanie zadane 27 września 2015 w C i C++ przez radek024 Szeryf (76,400 p.)
0 głosów
2 odpowiedzi 766 wizyt
pytanie zadane 2 grudnia 2015 w C# przez mrcnsct Nałogowiec (36,410 p.)
0 głosów
3 odpowiedzi 287 wizyt
pytanie zadane 11 października 2019 w C# przez JakSky Stary wyjadacz (14,750 p.)

88,400 zapytań

137,011 odpowiedzi

305,796 komentarzy

58,656 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...