Der Einfachheit halber übergeben Sie einfach einen Teil des Codes.const Vektorreferenz überladen
class A {
public:
std::vector<int> & get(){ return myVector;}
const std::vector<int> & get() const {return myVector;}
private:
std::vector<int> myVector;
}
Meine Frage ist, wie man überladen Const erhalten Methode. Wenn ich versuche, const_iterator und Debug-Code zu erstellen, handelt es sich um eine nicht-konstante Methode. wollen verstehen, wie es funktioniert Ich verwende die folgenden Schnipsel
A myA;
myA.get().push_back(1);
for (const auto& v: myA.get()) { } // it involve not const get method
oder
std::vector<int>::const_iterator cit = myA.get().begin()
//it involves not const method
oder
const std::vector<int> v = myA.get();
// involves non-const method
oder sogar Funktion, die ich schaffen:
int constVector(const std::vector<int> &constVector)
{
return constVector[0];
}
int b = constVector(myA.get()); // it involves non-const method
Was ist der Pu rpose der überladenen const-Methode, wenn sie nicht beteiligt sind.
Und was mache ich falsch und wie kann ich die Const-Methode einbeziehen.
Die Methode const heißt *, wenn der Verweis auf A const * ist. –