#define const huhu "uhuh"
-
Innerhalb einer Klasse nutze ich Pfadangaben, diese können sich ändern wenn ich das für nötig halte. Damit ich nicht in jeder Methode wieder alles ändern muss hatte ich daran gedacht, in der Klasse unter private
#define const huhu "uhuh"
zu schreiben, damit ich in den funktionen huhu verwenden kann. huhu ist aber unbekannt? Ich habe auch probiert huhu über der Klasse zu deklarieren, klappt auch nicht.
-
#define const huhu "uhuh" bewirkt, dass «const» durch «huhu "uhuh"» ersetzt wird.
-
also steht dann dort
#define huhu "uhuh"
wieso ist das denn unbekannt?
-
also du kannst in der cpp-datei der klasse doch
#define pfad "Das ist mein Pfad"
screiben.
oder in der klassendefinitionclass c
{
const string pfad;public:
c() : pfad("Mein Pfad") { // restkonstruktor };
};
-
@4Leerzeichen
Du solltest bedenken, dass #define zum Präprozessor gehört. Und der kennt weder Klassen, noch Namespaces, noch sonst irgendwelche C++ Sprachelemente. Letztendlich ist es einfach nur ein "Textersetzer".
Wenn der Pfad zur Laufzeit geändert werden muss, dann leg dir einen std::string im private Bereich an (wie Maxi schreibt, aber ohne const). Wenn er lediglich zur Compilezeit angepasst werden soll, dann nimm ein Literal:// .h class foo { private: static const char path[]; }; // .cpp const char foo::path[] = "main pfad";