2017-12-07 2 views
-1

Ok, spielte ich um auf C++ Standard-Header-Dateien, und ich kam mit dieser folgende Syntax,Was bedeutet diese Syntax in C++?

template<typename _Rep> 
struct treat_as_floating_point 
    : is_floating_point<_Rep> 
{ 
}; 

Bevor Sie einen Kommentar „Sie zumindest wissen Sie, was eine Schablone ist?“.

Ja, ich weiß, wie Vorlagen, structs, die gleich Klassen mit Ausnahme der öffentlichen und privaten, und ich weiß, wie Klassen zu verwenden.

Also dachte ich, es war eine Art von Initialisierung der Mitglieder wegen der :, mit Template-Spezialisierung, aber ich habe keine Ahnung.

+0

: die ': ' Syntax nach einem 'struct' /' CLASS' Namen, Vererbung ist, nicht initialisiert werden. – max66

+0

treat_as_floating_point erbt Basis-Template-Klasse/struct is_floating_point vom gleichen Typ _Rep – MRsa

+0

aber ist nicht notwendig, wie "Klasse Mutter: öffentliche Tochter" in der Vererbung zu haben? – Nomade040

Antwort

0

Die : im Code bedeutet nicht Mitglied der Initialisierung in diesem Zusammenhang aber Vererbung. Vererbung wird geschrieben als

class Derived : Base 
{ 
}; 

Der Code verwendet Vorlagen mit Vererbung. treat_as_floating_point<T> ist ein Template/generischer Typ, der von der Template-Instanziierung is_floating_point<T> erbt, wobei T ein Typ ist. Keine