03 c++中this指针
概念:
- 成员函数:在类中定义的函数。普通函数无法被继承,成员函数可以被继承。友元函数相当于普通函数。
- 友元函数不是类的组成,没有this指针,必须将成员函数操作符作为参数传递对象。
- 在c++中成员函数和成员变量是分开存放的,每个成员函数有一个this指针指向对象,静态成员函数和成员变量属于类。
- static无this指针
this指针就是指向对象开始的指针
在类中的成员函数都有一个特殊的this指针指向对象,这个对象就是该成员函数的对象。
当一个对象调用成员函数的时候,编译程序先将对象的地址给this指针,然后根据指针指向的地址调用成员函数,每次都是隐含使用this指针,通常不会显示的使用this指针来引用数据成员。
- 可以使用*this来表示调用该成员函数的对象
- 如果没有多继承this可以视为32位指针
- 多继承时this指针指向的最顶层的父对象可能不唯一,有事要加附加偏移量,大小不一定是32位。
03 c++中this指针的更多相关文章
- 【实战Java高并发程序设计 1】Java中的指针:Unsafe类
是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...
- c++中this指针的用法
1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将 ...
- 在c#中使用指针
如果想在c#中使用指针,首先对项目进行配置:在解决方案资源管理器中右击项目名选择属性(或在项目菜单中选择consoleApplication属性(consoleApplication为项名)),在生成 ...
- c中的指针
一. 指针前奏 1. 指针的重要性 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言. 2. 小需求 l void change(int n)函数 ...
- 关于Vector中的元素中含有指针成员的情况
对于容器,当容器的各个元素为类类型,且该类类型中含有指针成员时: 如果类类型的析构函数中包含了对指针变量指向内存的释放操作,则在利用clear()函数删除容器所有元素时,会自动调用类的析构函数,自动实 ...
- C++中this指针的用法详解
转自 http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响s ...
- C语言中的指针数组
C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...
- 转: 浅谈C/C++中的指针和数组(二)
转自:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html 浅谈C/C++中的指针和数组(二) 前面已经讨论了指针和数组 ...
- 转:浅谈C/C++中的指针和数组(一)
再次读的时候实践了一下代码,结果和原文不一致 error C2372: 'p' : redefinition; different types of indirection 不同类型的间接寻址 /// ...
随机推荐
- markdown ——flow流程图
一个纯文本的语法怎么画图? 将流程图代码包含在```folw和`````之间即可 例子 st=>start: Start op=>operation: Your Operation sub ...
- setInterval定时器停止后,再重新启动
1.数据自动滚动显示(动态添加) <li> <div class="FULeTi"> <div class="SLeName"&g ...
- springboot继承JpaRepository报org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualif
在SpringBoot项目中使用JPA时总是报注入失败,不能创建继承JpaRepository的类的问题,然后尝试给继承JpaRepository的写个实现类,不出现注入失败的情况,但是过一段时间后继 ...
- MySQL必知必会1
MySQL必知必会 了解SQL 什么是数据库:数据库(database)保存有阻止的数据的容器,可以把数据库想象成一个文件柜. 什么是表:表(table) 某种特定类型结构的结构化清单,数据库中的 ...
- 92. 反转链表 II
反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NULL, m ...
- makefile从0到1
一.什么是makefile 百度百科:Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是Unix程序员.在 Linux(u ...
- flask框架(三)——路由系统route转换成add_url_rule及源码分析
这节我们不用@app.route来写路由,而是通过add_url_rule 传统写法 (<int:nid>传递int类型参数,endpoint是取别名) @app.route('/det ...
- Select与Epoll的区别
相同点: 都是IO多路转接,都是一个线程能同一时间等待一堆描述符 不同点: 1.select接口使用不方便,每次调用完select都需要重新设置fd_set,因为输入输出未分离,返回的fd_set ...
- Mac上go的下载安装教程
mac上go的下载安装教程 官网https://golang.google.cn/dl/下载,安装 环境变量配置 参考https://www.jianshu.com/p/5c1873eaf3ca Ba ...
- www.qtbig.com:QList的at与[]10亿次运行速度比较(运行速度at都优于[],但区别不大)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/nicai_xiaoqinxi/artic ...