码迷,mamicode.com
首页 > 编程语言 > 详细

c++的this指针

时间:2016-04-15 07:09:17      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:c++

在写程序的时候发现,在一个类/结构体中定义一个变量并且初始化,如果变量名和参数名一样,则需要用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。

本文出自 “胡一刀” 博客,谢绝转载!

c++的this指针

标签:c++

原文地址:http://11190017.blog.51cto.com/11180017/1763988

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!