Hallo beste mensen, ik heb een klein vraagje.
stel het volgende, ik heb 2 klasses waarop ik overerving op wil gaan toepassen. we hebben een Child class en een Parent Class.
#ifndef CLSSDL_H_INCLUDED
#define CLSSDL_H_INCLUDED
#include <SDL/SDL.h>
class ClsSDL
{
private:
static const int SCREENWIDHT;
static const int SCREENHEIGHT;
static const int SCREENBBP;
SDL_Surface* RawImage;
SDL_Surface* ConvertedImage;
SDL_Surface* Screen;
protected:
SDL_Rect Position;
public:
ClsSDL();
~ClsSDL();
int init_SDL();
void Draw();
};
#endif // CLSSDL_H_INCLUDED
#ifndef CLSPONG_H_INCLUDED
#define CLSPONG_H_INCLUDED
#include "ClsSDL.h"
class ClsPong : ClsSDL
{
private:
protected:
public:
ClsPong();
~ClsPong();
void mainloop();
};
#endif // CLSPONG_H_INCLUDED
Dit zou betekenen dat de Child class alle eigenschappen en functie´s krijgt van de Parent class + de eigenschappen die Child class zelf gedefinieerd heeft.
Nu heb ik een soort gelijke situatie en merkte dat, (zonder dat ik een instantie van de Parent class gemaakt had) de constructor aangesproken werd van de Parent class. Nu dacht ik, als de constructor van de Parent class al wordt aangesproken zonder dat ik er een instantie voor maak (ik denk dat dit komt omdat er sprake is van overerving). dan is alles wat ik nodig heb ik de Parent class al geïnitialiseerd en heb ik ook geen instantie nodig in mijn Child class om alle eigenschappen en functies te bereiken vanuit de Child class omdat er immer sprake ik van overerving.
Nu probeerde ik deze Code:
#include <iostream>
#include "ClsPong.h"
using namespace std;
int main()
{
ClsPong ObjPong;
/*
switch(ObjPong.init_SDL())
{
case 0:
{
cout << "awsome!";
}break;
case 1:
{
}break;
case 2:
{
}break;
case 3:
{
}break;
case 4:
{
}
default:
{
}break;
}
*/
}
En dit ging goed, maar wanneer ik de commentaar tags weghaal krijg ik de volgende build error:
ClsSDL.h line:20 error: ‘int ClsSDL::init_SDL()’ is inaccessible
main.cpp line:10 error: within this context;
main.cpp line:10 error: ‘ClsSDL’ is not an accessible base of ‘ClsPong’
Dit snap ik niet, wie kan mij hierbij helpen?
Alvast bedankt,
JV.com