Re: class templates und friend (C++)

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Mathias Waack (mathias_at_atoll-net.de)
Date: 02. Jul 2002


On Tuesday 02 July 2002 09:54, Mark Seuffert wrote:
> Gegeben sind eine Klasse CTexture, die von Klasse CTextureManager verwaltet
> wird. Gebe ich also in CTexture an:
>
> friend class CTextureManager;
>
> Leite ich jetzt meine Klasse CTextureManager von einem Template
> CManager<CTexture> ab geht das nimmer, ich muss mein friend definieren als:
>
> friend class CManager<CTexture>; //CTextureManager doesn't work here
> anymore

Also folgender Code funktioniert mit dem gcc ohne Probleme:

template<class T>class A {};

class T {};

class B : public A<T> {};

class F {
  friend B;
};

int main()
{
  F f;
 return 0;
}

Ich sehe jetzt nicht den Unterschied zu Deinem Beispiel...

> Ansonsten beschwert sich gcc (genauso VC++). Kann mir jemand erklären
> warum?

Also prinzipiell scheint es ja zu gehen, Deine Fehler liegt wohl woanders...

> Eine Übersicht gibt es unter
> http://developer.pirate.de/archive/example.txt

Das ist ein ganz schlechtes Beispiel weil es so out of the Box gar nicht
kompilieren kann. Und wenn ich erst eine Unmenge von Deklarationen einfuegen
muss um das Ding testen zu koennen, schraenkt das meine Motivation _etwas_
ein;)

Mathias


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

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