在写程序的时候发现,在一个类/结构体中定义一个变量并且初始化,如果变量名和参数名一样,则需要用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。
本文出自 “胡一刀” 博客,谢绝转载!
原文:http://11190017.blog.51cto.com/11180017/1763988