Re: class templates und friend (C++)

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Mark Seuffert (captain_at_pirate.de)
Date: 02. Jul 2002


Hai Thomas, Mathias!

Thomas Jäger schrieb am 2 Jul 2002, (you wrote):

> Achja, was haelst Du von namespaces, dann brauchst Du nicht so elend
> lange Namen.

Hab ich bisher nie benutzt, schau ich mir mal an, thx!

> Der Fehler liegt wohl wo anders, das hier funktioniert einwandfrei:

Mein Beispielcode war wirklich scheisse, ich glaub ich liefer mal etwas
comilierbares nach. :)

--------- schnipp ------------
#include <stdio.h>
 
class CTextureManager;
class CTexture;

template <class T>
class CManager
{
public:
  CManager() {}
  void Set(int t) { entry.data = t; }
  T entry;
};

class CTexture
{
  friend class CManager<CTexture>; // <- good
//friend class CTextureManager; // <- bad, error 'bla is protected'
 
public:
  CTexture() {}
protected:
  int data;
};

class CTextureManager : public CManager<CTexture>
{
public:
  CTextureManager() {}
};
  
int main()
{
  printf("hello template :)\n");
  CTextureManager manager;
  manager.Set(10);
}
--------- schnapp ------------

Die Frage war, warum ist die erste Zeile ("<- good") in Ordnung,
aber die zweite Zeile ("<- bad") nicht? Es funktioniert zwar wie oben,
aber ich hab Verständnissschwierigkeiten warum nur die erste Zeile geht.

Thx und Gruß, Mark

-- 
Mark "Moak" Seuffert, Pirates Technologies, http://www.pirate.de

Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist ueberzeugt, dass er genug davon habe. (Rene Descartes)


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 02. Jul 2002 CEST