Konstruktor klasy pochodnej

Konstruktor klasy pochodnej
Roman Kwaśniewski
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 6 lat
  • Postów:52
0

Otóż mam taki kod:

Kopiuj
#pragma once

#include "Sprite.hpp"
#include "Bitmap.hpp"

class TileSprite : public Sprite
{
	
	public:
		
		int x;
		int y;
		int index;
		
		LPCTSTR BlockName;
		int BitmapID;
		int BlockType;
		int FramesCount;
		int Pass;
		
		TileSprite(Bitmap* pBitmap);
		
		void translate(int, int);
		void animate();
		
		virtual SPRITEACTION Update() override
		{
			
			jakieś instrukcje
			
		}
	
};

void TileSprite::animate()
{
	
	jakieś instrukcje
	
}

TileSprite::TileSprite(Bitmap* pBitmap)
{
	
	jakieś instrukcje
	
}

void TileSprite::translate(int tx, int ty)
{
	
	jakieś instrukcje
	
}

Jak widzicie klasa TileSprite jest pochodna od Sprite. Mam kłopot ze skonstruowaniem jej konstruktora. Kompilator wypluwa to:

Kopiuj
C:\Users\Lenovo\Desktop\MojeProgamy\k\C++\inne\gry\block\tile_sprite.hpp	In constructor 'TileSprite::TileSprite(Bitmap*)':
44	39	C:\Users\Lenovo\Desktop\MojeProgamy\k\C++\inne\gry\block\tile_sprite.hpp	[Error] no matching function for call to 'Sprite::Sprite()'
44	39	C:\Users\Lenovo\Desktop\MojeProgamy\k\C++\inne\gry\block\tile_sprite.hpp	[Note] candidates are:
i tutaj długa lista kandydatów...
edytowany 1x, ostatnio: Roman Kwaśniewski
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:2 dni
  • Lokalizacja:Szczecin
2

Musisz użyć istniejącego konstruktora klasy bazowej.


MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:2 minuty
3
kq napisał(a):

Musisz użyć istniejącego konstruktora klasy bazowej.

Najprawdopodobniej ma to wyglądać tak:

Kopiuj
TileSprite::TileSprite(Bitmap* pBitmap)
    : Sprite(pBitmap)
{
    // jakieś instrukcje
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
Roman Kwaśniewski
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 6 lat
  • Postów:52
0

OK, teraz działa, a wyjaśnisz co zmienia ta linijka. Szukałem w internecie, jest dużo tutoriali o dziedziczeniu klas, ale nie ma żadnego o konstruktorze klasy pochodnej.

MarekR22
to są podstawy z używania klas w C++. Wróć do swojej książki i poszukaj hasła "lista inicjalizacyjna".

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.