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

Zaimplementowanie własnego typu danych w C++?

0 głosów
154 wizyt
pytanie zadane 3 grudnia 2020 w C i C++ przez TeslaX93 Gaduła (3,600 p.)
Hej, nie wiem jak można nazwać to, czego szukam, więc postaram się to jakoś opisać. I pytam bardziej z ciekawości, niż z potrzeby, więc proszę sobie darować "hurr durr zrób operację modulo".

W C++ jest sobie taki typ jak signed char, który po przekroczeniu wartości -128 od dołu i 127 od góry "przekręca licznik" (tzn wykonuje operację modulo).

Czy jest możliwe stworzenie własnego typu liczby całkowitej ograniczonej np. zakresem (-10;10) tak, aby nie trzeba było używać za każdym razem operacji modulo? A jeżeli w C/C++ się nie da, to czy inne języki umożliwiają stworzenie czegoś takiego, jeżeli tak, to jakie?

1 odpowiedź

0 głosów
odpowiedź 3 grudnia 2020 przez tangarr Mędrzec (155,180 p.)
Oczywiście, że można. Stwórz własną strukturę/klasę zawierającą w sobie przechowywaną wartość i zdefiniuj dla niej następujące funkcje:
- Konstruktor przyjmujący int (lub inny typ liczbowy)
- Konstruktor kopiujący
- operator przypisania przyjmujący liczbę
- operator przypisania przyjmujący obiekt twojej klasy
- operator dodawania
- operator odejmowania
- operator mnożenia
- operator dzielenia
- funkcję pobierającą wartość jako int (lub inny typ)
- zaprzyjaźniony operator zapisu do strumienia
- zaprzyjaźniony operator odczytu ze strumienia

Chyba nic nie pominąłem.
Przy takim zestawie funkcji będziesz mógł używać swojego typu tak samo jak każdego innego typu liczbowego
komentarz 3 grudnia 2020 przez adrian17 Mentor (354,120 p.)
Żeby dokładnie "używać swojego typu tak samo jak każdego innego typu liczbowego", to jeszcze np operatory porównania (lub <=>), konwersje, przeładowanie std::hash i inne ;)
komentarz 3 grudnia 2020 przez tangarr Mędrzec (155,180 p.)
A jednak czegoś zapomniałem.
Takie rzeczy wychodzą w praniu.

Podobne pytania

0 głosów
1 odpowiedź 754 wizyt
pytanie zadane 16 maja 2018 w JavaScript przez Tomasz Ozi Orzech Początkujący (300 p.)
0 głosów
1 odpowiedź 525 wizyt
pytanie zadane 29 kwietnia 2018 w C# przez DODO Bywalec (2,950 p.)
0 głosów
1 odpowiedź 1,557 wizyt
pytanie zadane 7 września 2017 w C i C++ przez qlucha Obywatel (1,790 p.)

93,424 zapytań

142,421 odpowiedzi

322,643 komentarzy

62,782 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...