據我所知,「this」指針是像下面插入函數由編譯器的參數:如何將「this」指針指定給字段?
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;
}
};
順便說一句,我發現了一些令人困惑的代碼,分配「this」指針爲const領域。 (請參閱下面的內容)
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!)
如果「this」指針是通過函數傳遞的,那該怎麼做? 我不知道.. 你能給我一些建議嗎?我很感激你的回覆。
你想解決什麼問題? –
等號並不總是意味着分配。這可能意味着許多不同的事情,取決於上下文。在目前的情況下,它意味着「初始化」。 –
下面是另一個令人困惑的方式,它爲一個常量賦值「const int a = 5;' –