Hallo,
ich habe einige Stringwerte, die zur Laufzeit des Programms sich nicht ändern sollen. Diese halte ich in einem Vector. Nun möchte ich sie als const definieren. Später gebe ich sie in einer Const-Methode aus.
Das klappt leider nicht und ich find mein Fehler nicht:
Klassendifinition:
Der Konstruktor in der cpp-Datei:
Die Main:
Eigentlich habe ich ein größeres Projekt, wo das nicht funktioniert.
Da habe ich ein kleines Testprojekt hier angelegt und schon sagt er mir sogar in der Main, dass man
vector<const string> vk
so nicht definieren darf, obwohl er mir das in meinem eigentlich Projekt nicht anmeckert.
In meinem eigentlichen Projekt meckert er nur an der Stelle, wo ich das im Konstruktor mit dem Argument
vector<const string>&k übergeben will:
this->keys.push_back(k.at(i));
Weiss nicht so recht, was da falsch sein soll.
Danke für jeden Tipp
ich habe einige Stringwerte, die zur Laufzeit des Programms sich nicht ändern sollen. Diese halte ich in einem Vector. Nun möchte ich sie als const definieren. Später gebe ich sie in einer Const-Methode aus.
Das klappt leider nicht und ich find mein Fehler nicht:
Klassendifinition:
C++:
#include <vector>
#include <string>
using std::vector;
using std::string;
class testConst {
public:
testConst();
testCosnt(vector<const string>& k);
testConst(const testConst& orig);
virtual ~testConst();
private:
vector<const string> keys;
};
Der Konstruktor in der cpp-Datei:
C++:
testConst::testCosnt(vector<string>& k){
for (int i = 0; i < k.size(); i++) {
this->keys.push_back(k.at(i));
}
}
Die Main:
C++:
int main(int argc, char** argv) {
const string daa("asdfd");
vector<const string> test;
test.push_back(daa);
test.push_back(daa);
test.push_back(daa);
test.push_back(daa);
testConst tC(test);
return 0;
}
Eigentlich habe ich ein größeres Projekt, wo das nicht funktioniert.
Da habe ich ein kleines Testprojekt hier angelegt und schon sagt er mir sogar in der Main, dass man
vector<const string> vk
so nicht definieren darf, obwohl er mir das in meinem eigentlich Projekt nicht anmeckert.
In meinem eigentlichen Projekt meckert er nur an der Stelle, wo ich das im Konstruktor mit dem Argument
vector<const string>&k übergeben will:
this->keys.push_back(k.at(i));
Weiss nicht so recht, was da falsch sein soll.
Danke für jeden Tipp
Zuletzt bearbeitet: