Re: class templates und friend (C++)

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Thomas Jäger (jaeger_at_our-isp.org)
Date: 02. Jul 2002


On Tue, 2 Jul 2002, Mark Seuffert wrote:

> ich hab einen funktionierenden C++ Code, versteh aber nicht warum der Compiler mich
> bei Templates zwingt meine "friends" anders zu deklarieren.
>
> 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

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

----------------------------
template <typename T>
class CManager
{
public:
  CManager() {}
};

class CTextureManager;

class CTexture
{
  friend class CTextureManager;

public:
  CTexture() {}

private:
  int k;
};

class CTextureManager : public CManager<CTexture>
{
public:
  CTextureManager() {}

  // test if friendship works
  void op( CTexture& t ) { t.k = 5; }
};

int main() {}
--------------------------

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

Thomas

-- 
Thomas Jaeger <jaeger_at_our-isp.org>

100% reliable The HAL9000 is the most sophisticated computer ever built The only errors the machine makes are human


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

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