Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML] Dziedziczenie klas i tworzenie obiektów

Ostatnio zmodyfikowano 2017-02-24 14:55
Autor Wiadomość
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 ;-;
P-158192
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ąć.
P-158194
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:


           
C/C++
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 ;-;
P-158198
pekfos
» 2017-02-23 19:18:21
Czegoś tu brakuje ;-;
Poza dostateczną wiedzą o programowaniu obiektowym? Brakuje konstruktora, którego próbujesz wywołać i który jest podany wprost w komunikacie błędu.
P-158201
Justarandomguy
Temat założony przez niniejszego użytkownika
» 2017-02-24 00:29:05
         
C/C++
MojaKlasaPrzycisku( const Vector2f & size = Vector2f( 0, 0 ) )
    : RectangleShape()
{
    bool wcisniety;
};
A teraz? Co jest źle?
P-158240
latajacaryba
» 2017-02-24 00:31:26
Dziedziczenie:
public, protected lub private

klasa_dziedziczaca : public/protected/private klasa podstawowa
P-158241
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)
P-158250
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.
P-158251
« 1 » 2
  Strona 1 z 2 Następna strona