2012-03-25 9 views
2

nennen Wenn jemand enum Namen verwendet wie folgt:Verwendung der Enumeration

class Logger 
{ 
public: 
      enum LEVEL 
      { 
       Debug, 
       Warning, 
       Notification, 
       Error 
      }; 
}; 

Was würde das bedeuten, was sich hier:

Logger(LEVEL); 
+0

ist in der Tat Logger Logger? (oder umgekehrt) – ShinTakezou

+0

Wie Isaac Asimov sagen würde, unzureichende Daten für eine aussagekräftige Antwort. Zum einen, weil C++ Groß- und Kleinschreibung unterscheidet, haben wir keine Definition für "Logger". Und wir wissen nicht, in welchem ​​Kontext der Ruf steht. Es könnte alles sein. Statische Umwandlung von LEVEL in Logger? –

Antwort

4

Dies sieht aus wie die Deklaration eines Konstruktor, um wie folgt verwendet werden:

struct Logger 
{ 
    enum LEVEL { Debug, Warning, Notification, Error }; 
    Logger(LEVEL); 
    // ... 
}; 

Logger wlogger(Logger::Warning); 
Logger elogger(Logger::Error); 
+0

noch eine Sache, die ich fragen muss, wenn ich einen virtuellen ~ Logger() definiere, direkt nach dem Logger (LEVEL); – gandhigcpp

0

LEVEL ist eine Enumeration, bedeutet dies, dass LEVEL nur sein kann Werte Debug, Warnung, Benachrichtigung, oder Fehler.Logger(LEVEL); ist ein Aufruf Logger() der Klasse Logger zum Konstruktor, der nur Werte von unter Debug, Warnung akzeptiert, Benachrichtigung, und Fehler als erster Parameter und initialisiert wahrscheinlich die Eigenschaft LEVEL auf den Wert geliefert.