Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » vererbte Funktion wird nicht kompiliert

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.08.2006, 17:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi du leitest aber "private" ab, steht ja da, es muss heißen:


C++:
class TestMenu : public BaseMenu // <-- da hat das public gefehlt, ohne Angabe heißt private!


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.08.2006, 17:56 Uhr
Lensflare



oh... danke
--
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)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: