在寫程序的時候發現,在一個類/結構體中定義一個變量並且初始化,如果變量名和參數名一樣,則需要用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。