C++ this指针
2016-05-12 15:13
260 查看
this指针指向对象的指针。
this执政变量记录每个单独的对象的内存地址。
对象要在属于自己的成员变量身上写下自己的名字,以证明该成员变量是自己的成员,而不是其他对象成员,this变量帮助对象做到这一点,this变量记录每个
对象的内存地址,然后通过间接访问运算符-->访问该对象的成员。
默认情况下this指针是不用写的:编译器会自动在this前面加上变量之前的。
//
// Created by amesty on 16/5/13.
// Copyright © 2016年 travelrely. All rights reserved.
//
#include <stdio.h>
#include <iostream>
using namespace
std;
class A
{
private:
int i;
public :
int get() const {
return i ;}
void set(int x) {
this-> i = x;
cout<<"this变量保存的内存地址:\t"<<this<<endl;
}
};
int main()
{
A a;
a.set(9);
cout<<"对象a的内存地址:\t"<<&a<<endl;
cout<<a.get()<<endl;
A b;
b.set(999);
cout<<"对象b的内存地址:\t"<<&b<<endl;
cout<<b.get()<<endl;
return 0;
}
this变量保存的内存地址:
0x7fff5fbff968
对象a的内存地址:
0x7fff5fbff968
9
this变量保存的内存地址:
0x7fff5fbff960
对象b的内存地址:
0x7fff5fbff960
999
Program ended with exit code: 0
this执政变量记录每个单独的对象的内存地址。
对象要在属于自己的成员变量身上写下自己的名字,以证明该成员变量是自己的成员,而不是其他对象成员,this变量帮助对象做到这一点,this变量记录每个
对象的内存地址,然后通过间接访问运算符-->访问该对象的成员。
默认情况下this指针是不用写的:编译器会自动在this前面加上变量之前的。
//
// Created by amesty on 16/5/13.
// Copyright © 2016年 travelrely. All rights reserved.
//
#include <stdio.h>
#include <iostream>
using namespace
std;
class A
{
private:
int i;
public :
int get() const {
return i ;}
void set(int x) {
this-> i = x;
cout<<"this变量保存的内存地址:\t"<<this<<endl;
}
};
int main()
{
A a;
a.set(9);
cout<<"对象a的内存地址:\t"<<&a<<endl;
cout<<a.get()<<endl;
A b;
b.set(999);
cout<<"对象b的内存地址:\t"<<&b<<endl;
cout<<b.get()<<endl;
return 0;
}
this变量保存的内存地址:
0x7fff5fbff968
对象a的内存地址:
0x7fff5fbff968
9
this变量保存的内存地址:
0x7fff5fbff960
对象b的内存地址:
0x7fff5fbff960
999
Program ended with exit code: 0
相关文章推荐
- 【c++】第十二周上机实践作业 项目 3
- C语言 基础题
- 【c++】读取目录下所有文件
- leetcode 326---Power of Three,区分floor与rint
- C语言if判断语句中可以更改变量的值
- 【客户端】windows c++ 检查图像文件是否有效(Check if file is valid image)
- 基于C语言的状态机实现技术
- c++对象内存模型【内存布局】
- java中new关键字和c++中的new有什么区别
- C/C++函数指针
- 【c++】第十二周上机实践作业 项目 2
- C语言 二级指针内存模型③
- c++ 预处理和预处理命令
- [算法][ACM]hdoj 1009 FatMouse' Trade
- c语言中static 函数和普通函数的区别?
- C++笔记(2)
- C++ Traits和模板偏特化
- JNI 使用java调用c++动态库
- 使用jni实现在C语言中调用Java的方法
- C++用指针创建堆中空间