000
04.08.2006, 17:50 Uhr
Lensflare
|
Hallo.
ich habe eine Klasse "TestMenu", die von "BaseMenu" abgeleitet ist. BaseMenu hat die Funktion "Paint" unter public und müsste demnach auch bei TestMenu als public vorhanden sein.
Aber der compiler gibt einen Fehler aus, wenn ich Paint von Testmenu aufrufen will:
Code: |
...\main.cpp(23) : error C2247: 'BaseMenu::Paint' not accessible because 'TestMenu' uses 'private' to inherit from 'BaseMenu' ...\basemenu.h(28) : see declaration of 'BaseMenu::Paint' ...\test_menu.h(3) : see declaration of 'TestMenu' ...\basemenu.h(6) : see declaration of 'BaseMenu'
|
wenn ich Paint von BaseMenu aufrufe, dann gehts.
hier ist der relevante code:
C++: |
//main.cpp
#include "test_menu.h"
int main() { //... BITMAP *doublebuffer = create_bitmap(800,600); TestMenu testMenu; testMenu.Paint(doublebuffer); //hier kommt der compilerfehler //... }
|
C++: |
//basemenu.h
#include <string.h> #include <allegro.h>
class BaseMenu { public:
BaseMenu(); ~BaseMenu(); //...
void Paint(BITMAP *destBitmap);
protected: //... };
|
C++: |
//basemenu.cpp
#include "basemenu.h"
//...
void BaseMenu::Paint(BITMAP *destBitmap) { //... }
//...
|
C++: |
//test_menu.h
#include "basemenu.h"
class TestMenu : BaseMenu { public: TestMenu(); ~TestMenu(); };
|
C++: |
//test_menu.cpp
#include "test_menu.h"
//...
|
-- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost) |