Einstellung Standardwert für die Eigenschaft einer Klasse
Ich habe die Funktion unten. Ich brauche, um einen generischen Wert für die Ausführlichkeit.
Fehler: Iso-C++ verbietet isolation. Muss ich, um diese über den Konstruktor?
Ja,
Ich habe es ausprobiert, und es funktionierte wie dieses
arche()
{
verbosity_ = 1;
}
Aber wie ich mich erinnere, C++ hat eine spezielle syntax für Standard-Mitglied Werte. Dies ist wahrscheinlich das, was ich verwenden soll. Was ist es?
class test
{
protected:
short verbosity_=1; //this does not work
public:
void setVerbosity(short v)
{
if((v==0 || v==1))
{
verbosity_ = v;
}
else
{
cout << " Verbosity Level Invalid " << endl;
}
}
virtual void runTest() = 0;
};
- mögliche Duplikate von Standard-init-Wert für die struct-member einer Klasse
- Nicht Bearbeiten Sie die Antwort in der Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können es im Konstruktor, aber Sie brauchen nicht eine Zuordnung, können Sie mit der Initialisierung syntax in etwa so:
In C++ 98 und 2003 können Sie nicht tun; Sie müssen es durch den Konstruktor.
In der neueste standard, C++11, Sie sind in der Lage, verwenden Sie die syntax, die Sie versuchen.
In C++03, benötigen Sie zum initialisieren der kurzen Mitglied im Konstruktor.
Als eine (begrenzte) Abhilfe, die folgende arbeiten würden für integer-Typen:
In C++98 und C++03 Sie kann nur initialisieren
static const
Mitglieder so.Sonst muss verwenden Sie die ctor-initialiser:
Aber in C++11 Sie kann tun, dass für built-in Typen: