2016-11-06 3 views
-1

Vor kurzem entdeckte ich intelligente Verknüpfung Klasse in C++ vordefinieren. Normalerweise eine komplexe Struktur zu schaffen Ich würde schreiben:C++ Verwenden undefined Vorlage in der Klasse

class A; 
class B{ 
    A *a; 
}; 
... 
class A{ 

}; 

Nun, dank Verknüpfung, schreibe ich:

class B{ 
    class A *a; 
}; 
class A{ 

}; 

Meine Frage - wie kann ich eine kurze Definition entspricht diese Form:

template<typename T> class A; 
class B{ 
    typename typedef A<class T> a; 
}; 

?

Antwort

1

einfache Antwort ist, dass Sie nicht können. ausgearbeitete Typspezifikation für reguläre Klassen führt den Namen in den umgebenden Namensraum, indem sie implizit es vorwärts zu erklären.

Vorlagen werden nicht auf die gleiche Weise verhalten definiert.

+0

Nun, ich werde warten, dass jemand, der Sie nicht wissen nicht –

+0

@CheshireCat :) können, sind Sie frei, die C++ Standard selbst zu lesen. Die Antwort wird sich nicht ändern. – StoryTeller