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

question-closed SFML - problem z klasami

Object Storage Arubacloud
0 głosów
131 wizyt
pytanie zadane 1 maja 2019 w C i C++ przez NEFOS Początkujący (320 p.)
zamknięte 1 maja 2019 przez NEFOS

Witam!

Otóż mam problem z SFML, a dokładniej(chyba o to chodzi) z dziedziczeniem mojej własnej klasy po klasie Drawable. Problem wygląda mniej więcej tak:

Tutaj jest mój plik engine1.h:

#include <SFML/Graphics.hpp>

using namespace std;

class Button : public sf::Drawable
{
public:
	virtual void genButton(string text, float x, float y, float sx, float sy, sf::Color color, sf::RenderWindow window);
};

Plik engine1.cpp:

#include <SFML/Graphics.hpp>
#include "engine1.h"

using namespace std;

void Button::genButton(string text, float x, float y, float sx, float sy, sf::Color color, sf::RenderWindow window)
{
	sf::RectangleShape button(sf::Vector2f(sx, sy));
	button.setFillColor(color);
	button.setPosition(sf::Vector2f(x, y));
	window.draw(button);
}

No i jeszcze plik main.cpp:

#include <SFML/Graphics.hpp>
#include "engine1.h"

using namespace std;

int main()
{
	Button button1; //<--- Tutaj pokazuje mi się błąd
	sf::RenderWindow window(sf::VideoMode(1366, 720), "Projekt SFML");

	while (window.isOpen())
	{
		sf::Event event;
		while (window.pollEvent(event))
		{
			if (event.type == sf::Event::Closed)
				window.close();
		}

		

		window.clear();
		window.display();
	}

	return 0;
}

Tak na mój(mało profesjonalny) pierwszy rzut oka wszystko wyglądało dobrze, a brak widocznych błędów wykrywanych przez VS2017 w plikach engine1.h i engine1.cpp tylko mnie w tym stwierdzeniu utrwalały, ale wtedy nagle zobaczyłem do pliku main.cpp i VS2017 wykrywa mi się błąd kiedy próbuję stworzyć obiekt z klasy Button. Treść tego błędu brzmi tak:

object of abstract class type "Button" is not allowed:

pure virtual function "sf::Drawable::draw" has no overrider

Szukałem już podobnych tematów w internecie, ale nic nie pomogło, albo zrobiłem coś źle.

Nie wiem już co mam z tym zrobić, dlatego proszę o pomoc.

Z góry dziękuję.

komentarz zamknięcia: Zamykam temat, ze względu na otrzymane odpowiedzi od RafalS i jankustosz1. Nie wiedziałem, że trzeba zaimplementować to draw, w sumie nie wiedziałem, że taka możliwość istnieje, ale zawsze to jakaś lekcja na życie ;)

2 odpowiedzi

+1 głos
odpowiedź 1 maja 2019 przez RafalS VIP (122,820 p.)
wybrane 1 maja 2019 przez NEFOS
 
Najlepsza
Musisz zaimplementować virtualne metody z klasy bazowej. W tym przypadku draw:

https://stackoverflow.com/questions/34458791/making-custom-types-drawable-with-sfml
+1 głos
odpowiedź 1 maja 2019 przez jankustosz1 Nałogowiec (35,880 p.)
Dziedzicząc po Drawable musisz zaimplementować metodę draw.

Podobne pytania

0 głosów
1 odpowiedź 214 wizyt
pytanie zadane 3 marca 2018 w C i C++ przez zpawlo00 Początkujący (310 p.)
0 głosów
1 odpowiedź 1,279 wizyt
pytanie zadane 14 września 2020 w C i C++ przez KumberTwo Dyskutant (8,270 p.)
0 głosów
1 odpowiedź 896 wizyt
pytanie zadane 16 września 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...