c++的this指針

在寫程序的時候發現,在一個類/結構體中定義一個變量並且初始化,如果變量名和參數名一樣,則需要用this指針指出變量名,否則,需要將變量定義一個新名字。


變量名和參數名相同的後果是邏輯錯誤。

在結構體中定義一個大小爲10的向量

vector<string> data;
data.size() == 10
下面使用相同的名字
struct struct_data{
    vector<string> data;
    struct_data(vector<string> data){
        data = data;
    }
};

void test(){
    struct struct_data *my_data = new struct_data(string_vector);
    cout << my_data->data.size() << endl;
}

結果爲0。


如果用this指針,

struct struct_data{
    vector<string> data;
    struct_data(vector<string> data){
        this->data = data;
    }
};

則結果爲10。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章