Justarandomguy Temat założony przez niniejszego użytkownika |
[SFML] Dziedziczenie klas i tworzenie obiektów » 2017-02-23 18:28:40 Tworzę aplikację korzystając z SFML, utworzyłem klasę dziedziczącą po sf::RectangleShape dla przycisków, tak mi ktoś poradził, ale nie wiem co zrobić by obiekt tej klasy był tym prostokątem ;-; |
|
pekfos |
» 2017-02-23 18:41:31 utworzyłem klasę dziedziczącą po sf::RectangleShape dla przycisków, tak mi ktoś poradził |
Co to za pomysł..? W czym ma to pomóc? nie wiem co zrobić by obiekt tej klasy był tym prostokątem |
Technicznie rzecz biorąc, sam z siebie jest tym prostokątem. Jeśli to ci nie wystarcza, to zacznijmy od tego, że nie wiadomo co chcesz osiągnąć. |
|
Justarandomguy Temat założony przez niniejszego użytkownika |
» 2017-02-23 18:53:47 W klasie umieściłem bool ze stanem przycisku. Wcześniej napisałem taki kod: bool button_clicked;
if( rectangle_hide.getGlobalBounds().contains( mouse ) ) { if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) ) { button_clicked = true; } else { if( button_clicked == true ) { * tab_left_visible = !* tab_left_visible; button_clicked = false; } } który miał odpowiadać za to, iż po puszczeniu przycisku tab_left_visible zmieni swój stan, jednakże użyłem przy tym zmiennej globalnej (bool button_clicked), a gdy będę miał więcej przycisków to utworzy się syf i tysiąc owych zmiennych, dlatego chciałem ową zmienną zamieścić w klasie, ale gdy próbuję utworzyć obiekt (MojaKlasaPrzycisku rectangle_hide(sf::Vector2f(10, 10);) to zwraca mi error: ||=== Build: Debug in Appka (compiler: GNU GCC Compiler) ===| no matching function for call to 'MojaKlasaPrzycisku::MojaKlasaPrzycisku(sf::Vector2f)'| candidates are:| MojaKlasaPrzycisku::MojaKlasaPrzycisku()| candidate expects 0 arguments, 1 provided| MojaKlasaPrzycisku::MojaKlasaPrzycisku(const MojaKlasaPrzycisku&)| no known conversion for argument 1 from 'sf::Vector2f {aka sf::Vector2<float>}' to 'const MojaKlasaPrzycisku&'
Czegoś tu brakuje ;-; |
|
pekfos |
» 2017-02-23 19:18:21 Poza dostateczną wiedzą o programowaniu obiektowym? Brakuje konstruktora, którego próbujesz wywołać i który jest podany wprost w komunikacie błędu. |
|
Justarandomguy Temat założony przez niniejszego użytkownika |
» 2017-02-24 00:29:05 MojaKlasaPrzycisku( const Vector2f & size = Vector2f( 0, 0 ) ) : RectangleShape() { bool wcisniety; }; A teraz? Co jest źle? |
|
latajacaryba |
» 2017-02-24 00:31:26 Dziedziczenie: public, protected lub private
klasa_dziedziczaca : public/protected/private klasa podstawowa |
|
Justarandomguy Temat założony przez niniejszego użytkownika |
» 2017-02-24 11:46:10 Ale to miał być konstruktor, nvrmnd, mógłby ktoś wrzucić tutaj działający przykład, albo gdzie znajdę kurs w którym będzie to chociaż trochę bardziej wytłumaczone?(tak, te na cppox'ie już czytałem) |
|
pekfos |
» 2017-02-24 12:16:42 Co będzie bardziej wytłumaczone? Jak użyć argumentu, który pobierasz w metodzie..? Nie różni się to mechaniką od funkcji, a ty właśnie napisałeś funkcję, w której nie używasz ani przyjmowanego argumentu, ani utworzonej nie wiadomo po co zmiennej i jeszcze pytasz co jest źle. Skoro chociaż zauważasz, że jest źle, to znaczy że oczekujesz od tego konstruktora konkretnego zachowania. Jakie by ono nie było, musi być w nim jakiś przepływ danych - w twoim kodzie on nie istnieje i to nie problem z rozumieniem obiektowości, tylko rozumieniem podstaw języka. |
|
« 1 » 2 |