Soweit ich weiß „dieser“ Zeiger ist der Parameter, wie unten in der Funktion von Compiler eingefügt:Wie ist es möglich, "diesen" Zeiger auf Feld zuzuweisen?
class Sample {
private:
int a;
public:
void setA(int a) {
this->a = a;
}
};
Sample ob;
ob.setA(5); -> ob.setA(&ob, 5);
class Sample {
private:
int a;
public:
void setA(Sample* this, int a) {
this->a = a;
}
};
Btw, fand ich etwas verwirrend Code, den den „diesen“ Zeiger auf const Feld zuweisen. (Hierunter)
class Test {
int data;
public:
Test* const test = this;
Test(int data = 1) : data(data) { }
Test(Test &test) : data(test.data) { }
};
(It has no compile Errors and runs well!)
Wenn es wahr ist, dass „diese“ Zeiger über Funktion gefördert wird, Wie kann es sein? Ich habe keine Ahnung .. Könnten Sie mir bitte einen Rat geben? Ich bin dankbar für Ihre Antworten.
Welches Problem versuchen Sie zu lösen? –
Das Gleichheitszeichen bedeutet nicht immer Zuweisung. Je nach Kontext kann es viele verschiedene Dinge bedeuten. Im vorliegenden Fall bedeutet es "Initialisierung". –
Hier ist ein weiterer verwirrender Weg, der einer konstanten Variablen einen Wert "zuweist": 'const int a = 5;' –