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

C+++ this关键字指针

时间:2019-09-01 14:53:42      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:public   ali   return   names   include   pac   存放位置   结构体   参数   

如果这一章不适合你, 你可以查看 C++指针目录

上一章中, 我们了解到了 结构体与类中的指针的用法, 本章必须在熟悉其用法之后开始

我们在类或结构体中, 可能难免会碰到这样的情况 (例如存放位置信息的类):

 1 #include <iostream>
 2 using namespace std;
 3 class POS
 4 {
 5 private:
 6     int x,y;
 7 public:
 8     POS(int x,int y)//BUG!!!
 9     {
10         x=x;
11         y=y;
12     }
13 };
14 int main()
15 {
16     POS p(10,10);
17     return 0;
18 }

现在, 我们会发现, 在构造函数中, x与y 指代不明

尽管说这段代码可以正常运行, 但是最后的结果就不一定了

因为编译器不知道 x, y指的是函数的参数还是成员变量

 

这时候,我们需要引入一个 this 指针

这个指针指向的是当前结构体或类(不能在结构体或类的外部使用)

于是就可以将上面的代码修改一下:

 1 #include <iostream>
 2 using namespace std;
 3 class POS
 4 {
 5 private:
 6     int x,y;
 7 public:
 8     POS(int x,int y)
 9     {
10         this->x=x;
11         this->y=y;
12     }
13 };
14 int main()
15 {
16     POS p(10,10);
17     return 0;
18 }

这下编译器就知道我是想将 成员变量x, y分别设置成函数传入的参数x, y

 

this 的用法很简单, 关键是要看指针掌握的程度, 如果很陌生的话推荐看以下两篇:

C++指针详解

C++结构体与类指针

C+++ this关键字指针

标签:public   ali   return   names   include   pac   存放位置   结构体   参数   

原文地址:https://www.cnblogs.com/tweechalice/p/11441925.html

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