Konstruktor klasy pochodnej

0

Otóż mam taki kod:

#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:

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...
2

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

3
kq napisał(a):

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

Najprawdopodobniej ma to wyglądać tak:

TileSprite::TileSprite(Bitmap* pBitmap)
    : Sprite(pBitmap)
{
    // jakieś instrukcje
}
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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0