this->指针
2015-10-14 10:39
260 查看
#include <iostream>
using namespace std;
class point
{
public:
int a;
int b;
point(int x,int y)
{
a=x;
b=y;
}
void output(int a,int b)
{
this->a=a;
this->b=b;
}
void output()
{
cout<<a<<endl;
cout<<b<<endl;
}
};
void main()
{
point pt(3,3);
pt.output(5,5);
pt.output();
}
/*----------------------------------------------------------------------------------
●this指针:C++提供的隐含的指针,指向对象本身,代表对象的地址,每当产生一个对象,就会产生一个this指针指向该对象本身,
●类是抽象的,并不占具体的物理内存,只有对象才是实例化的实体,能在内存空间存活的事物,
●问:一个类所有的对象调用的成员函数都是同一代码段,成员函数是怎么识别属于同一对象的数据成员呢?
○答:在对象调用pt.output(10,10)时,成员函数除了接受2个实参外,还接受到一个对象s的地址。这个地址被一个隐含的形参this指针所获取,这个地址被一个隐含的形参this指针所获取,它等同于执行this=&pt.所有对数据成员的访问都隐含地被加上前缀this->.例如:x=0等价于this->x=0
●函数重载条件:函数的参数类型不同,或者参数个数不同
○以下情况不能构成函数的重载:
(1)void output();
(2)int output();
○以下情况不能构成函数的重载(如只传递一个参数时,第一个函数的第二个参数有缺省值,因此匹配;第二个函数也匹配只传递一个参数的情形,这样两个函数都匹配,不能重载):
(1)void output(int a,int b=5);
(2)void output(int a);
-------------------------------------------------------------------------------------*/
using namespace std;
class point
{
public:
int a;
int b;
point(int x,int y)
{
a=x;
b=y;
}
void output(int a,int b)
{
this->a=a;
this->b=b;
}
void output()
{
cout<<a<<endl;
cout<<b<<endl;
}
};
void main()
{
point pt(3,3);
pt.output(5,5);
pt.output();
}
/*----------------------------------------------------------------------------------
●this指针:C++提供的隐含的指针,指向对象本身,代表对象的地址,每当产生一个对象,就会产生一个this指针指向该对象本身,
●类是抽象的,并不占具体的物理内存,只有对象才是实例化的实体,能在内存空间存活的事物,
●问:一个类所有的对象调用的成员函数都是同一代码段,成员函数是怎么识别属于同一对象的数据成员呢?
○答:在对象调用pt.output(10,10)时,成员函数除了接受2个实参外,还接受到一个对象s的地址。这个地址被一个隐含的形参this指针所获取,这个地址被一个隐含的形参this指针所获取,它等同于执行this=&pt.所有对数据成员的访问都隐含地被加上前缀this->.例如:x=0等价于this->x=0
●函数重载条件:函数的参数类型不同,或者参数个数不同
○以下情况不能构成函数的重载:
(1)void output();
(2)int output();
○以下情况不能构成函数的重载(如只传递一个参数时,第一个函数的第二个参数有缺省值,因此匹配;第二个函数也匹配只传递一个参数的情形,这样两个函数都匹配,不能重载):
(1)void output(int a,int b=5);
(2)void output(int a);
-------------------------------------------------------------------------------------*/
相关文章推荐
- a标签链接跳转
- 正式发布时去除Log
- 给出两个单词,找到它们的最短距离
- FileUtil
- Kalman滤波器详解
- 在MVC中使用dotless后台动态解析LESSCSS的学习笔记
- 实验一
- 常用的数据类型
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数004·edge,边缘处理
- 账号
- 软件测试管理高级研修班(3天精品班,中国深圳 2015.11.13~15)
- Linux下Tomcat端口号以及进程相关命令
- 学习日志---linux打卡9
- ListView优化整理
- UIPageControl 圆点背景图片的自定义实现
- discuz发帖子中正则排除某URL
- discuz发帖子中正则排除某URL
- 数据结构基础(4) --快速排序
- 连接Oracle中的那些事儿
- cdh5.4.7启动hive报错