C++经典问题解析之二
来源:互联网 发布:淘宝装修免费模板 编辑:程序博客网 时间:2024/05/18 17:04
隐藏的this指针,所有对象共享类的成员函数
写一篇博客花费时间虽然长,但是却让你对内容的记忆尤为深刻,尤其是你对它的态度。记录菜鸟的成长日记,也希望同为菜鸟的你们与我一起共同进步!!现在分享的是C++的学习笔记,后面会同时分享数据结构学习笔记,以及我目前手中项目的制作流程!!忘记说了,目前手中正在做的是 基于Imx6的一个linux操作系统的移植,主要做驱动的移植与系统的移植,后期可能会移植QT,这些我都希望记录在我的博客中,相信几年后,我也有可能会成为了博客专家了呢?哈哈哈!!!
好,今天的主题依然接着上一篇博客的线路,来探讨一下目前我所学到的C++中的一些经典问题的 探讨!
1.成员函数和成员变量都是隶属于具体的对象么?
从面相对象的角度
–对象由属性(成员变量)和方法(成员函数)构成
从程序运行角度
–对象由数据和函数构成
*数据可以位于栈,堆和全局数据区
*函数只能位于代码段
直接上代码吧,文字的描述总是很枯燥!!!
#include <stdio.h>class Test{ int mi;public: int mj; Test(int i); Test(const Test& t); int getMi(); void print();};Test::Test(int i){ mi = i;}Test::Test(const Test& t){ mi = t.mi; //mi 为private 类型,为何可以调用?}int Test::getMi(){ return mi;}void Test::print(){ printf("this = %p\n", this);}int main(){ Test t1(1); Test t2(2); Test t3(3); printf("t1.getMi() = %d\n", t1.getMi()); printf("&t1 = %p\n", &t1); t1.print(); printf("t2.getMi() = %d\n", t2.getMi()); printf("&t2 = %p\n", &t2); t2.print(); printf("t3.getMi() = %d\n", t3.getMi()); printf("&t3 = %p\n", &t3); t3.print(); return 0;}
先运行一下,我还是将它放到linux中运行,输出结果为:
t1.getMi() = 1&t1 = 0xbfcc3d68this = 0xbfcc3d68t2.getMi() = 2&t2 = 0xbfcc3d60this = 0xbfcc3d60t3.getMi() = 3&t3 = 0xbfcc3d58this = 0xbfcc3d58
以上输出可以看出每一个对象以及this所指的地址都是一样的,这说明了一些问题:
可以得出一下四条结论:
-每一个对象拥有自己独立的属性(成员函数)
-所有的对象共享类的方法(成员函数)
-方法能够直接访问对象的属性
-方法中的隐藏参数 this 指针用于指代当前对象
程序中的问题mi = t.mi; //mi 为private 类型,为何可以调用?
,因为拷贝构造函数Test::Test(const Test& t)
本身也属于一种成员函数,能够直接访问对象的属性。
阅读全文
0 0
- C++经典问题解析之二
- 经典问题解析(二)
- C语言经典问题学习笔记之二
- [C++] 经典练习题与解析(二)
- 专题一之经典问题解析
- c++学习笔记(10.专题二经典问题解析)
- C语言中的经典问题之数组
- 实例解析C++/CLI线程之二
- C语言深度解析之二
- 【C解析之二】数据类型进阶
- c语言经典解析
- 经典问题解析三
- C++经典问题解析
- C经典例题二
- 《C#Web应用程序入门经典》学习笔记之二
- C#Web应用程序入门经典 学习笔记之二
- 菜鸟系列之C/C++经典试题(二)
- C语言经典项目之二——扫雷
- Hive分区修复命令MSCK介绍与使用
- ZooKeeper典型应用场景一览
- 款提升效率的chrome插件,好用到没朋友
- Android文本保存成PDF格式
- SAP ABAP 常用事务码
- C++经典问题解析之二
- ubuntu16.06+cudnn5.0+tensorflow配置的辛路历程
- Program Commonly Used Skill
- 前后台分离思想
- 通过代码调用并发请求
- Digit Counting
- Java JDBC事务与JTA分布式事务
- 聚合sdk打包问题
- OpenGL 入门教程(五) -- 模型视图投影矩阵