2017-06-28 7 views
2

Um meine eigene Warteschlangenklasse zu erstellen, muss ich ein Klassenattribut innerhalb einer Funktion dieser Klasse deklarieren.C++: Klassenattribut im lokalen Gültigkeitsbereich

Was ich versuche zu tun:

, wenn ich rufe die Funktion add, das Programm auf die Klasse ein neues Attribut erstellt, in privaten, nach [] mit dem Betreiber zuzugreifen. Dadurch kann ich eine Warteschlange ohne Typeinschränkung erstellen, die Elemente jeder Klasse verwendet.

Ist es möglich?

bearbeiten

Diese Warteschlange ist nur eine Verwendung Probe. Meine wirklich Frage ist: in Python kann ich das tun.

class Car: 
    def __init__ (self, ...): 
     ... 
     self.color = 'blue' 

nun Farbe in jedem Ort der Klasse verwendet werden kann (denken Sie daran, dass Einsatzart braucht keine Variable in Python zu erklären In der exemple, Farbe wurde in __init__ Bereich deklariert, ist aber ein Klassenattribut und keine lokale Variable). Wie kann ich so etwas in C++ machen?

+0

Tupel? variadische Vorlage? –

Antwort

0

Die Frage ist an erster Stelle nicht klar. Von dem, was ich verstehe, möchten Sie eine Warteschlange mit heterogenen Elementen erstellen. Sie können diese Antwort für heterogene Container beziehen.

Heterogeneous containers in C++ Sie können auch Tuple verwenden, um heterogene Daten zu speichern.

0

Das gesuchte Konzept ist eine Membervariable, die Teil der Klassendefinition sein muss, da C++ nicht dynamisch typisiert wird. Um es nur innerhalb der Klasse sichtbar zu machen, mache es privat. Sie können dann seinen Wert in der Konstruktorinitialisierungsliste festlegen.

class Car { 
public: 
    Car : color("blue") { } 
private: 
    std::string color; 
}; 
Verwandte Themen