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

C++ dzielenie klas na mniejsze

Object Storage Arubacloud
0 głosów
317 wizyt
pytanie zadane 12 marca 2022 w C i C++ przez Billy Użytkownik (680 p.)

Siemka,

Stworzyłem ostatnio program, który obsługuje i manipuluje obrazami, oraz zamienia je na ich wersje ASCII. Cały kod umieściłem w jednej klasie, odpowiednio podzielonej na funkcje. Funkcje uporządkowałem grupami (funkcje operujące na pliku, filtry, obracanie obrazu itp.).


I tu jest moje pytanie. Jak wydzielić te poszczególne grupy? Żeby to wszystko nie siedziało w jednej klasie, tylko było bardziej zorganizowane? Myślałem o rozwiązaniu, gdzie wydzieliłbym kod do pomocniczych klas, w klasie głównej tworzyłbym odpowiednie pod-obiekty i dostęp do funkcji wyglądałby następująco:

img.filters.changeToGrayscale();

Ale nie wiem, czy jest to optymalne rozwiązanie. Może jakaś porada od bardziej doświadczonych kolegów? :P

Link do githuba: github

1
komentarz 13 marca 2022 przez VBService Ekspert (253,420 p.)

BTW, laugh int ratio - nie używane.

float calcSize(int pixels, int orginalSize, int ratio)
{
	return (float)pixels / (float)orginalSize * 0.5;
}

pomimo wywołania  calcSize(width, img.getW(), 0.5)

int main()
{
	...
	img.reduce(width, calcSize(width, img.getW(), 0.5));

    ...

	return 0;
}

 

komentarz 13 marca 2022 przez Billy Użytkownik (680 p.)
O faktycznie, dzięki za wypunktowanie :P Wyciąłem kod do funkcji, i zapomniałem zmienić 0.5 na parametr :P

A masz jakieś pomysły, jak można podzielić klasę na mniejsze, tak jak w pytaniu?
komentarz 14 marca 2022 przez tkz Nałogowiec (42,000 p.)
komentarz 29 marca 2022 przez Billy Użytkownik (680 p.)

Podświetlało mi, że możliwe jest wyjście poza zakres, ale przecież mam `i += channels`, czyli `i` w ostatniej iteracji będzie wynosiło `size() - channels`, bo przy następnej i będzie większe od size(). Czyli wszystko powinno się zmieścić, nie? Czy coś źle kombinuję?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 245 wizyt
pytanie zadane 14 lipca 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 8 lutego 2022 w Java przez komboboost0 Użytkownik (570 p.)
0 głosów
1 odpowiedź 79 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...