博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态属性和静态方法2 - C++快速入门22
阅读量:6502 次
发布时间:2019-06-24

本文共 1066 字,大约阅读时间需要 3 分钟。

静态属性和静态方法2

 

让编程改变世界

Change the world by program


 

静态方法

  嗯,还是静态方法?!这阵子有鱼油表示对该方法的特色还是有点云里雾里还有那个神神兮兮的this指针。。。 所以小甲鱼保持务必让你彻底领悟的精神继续和大家探讨!  

我们先来说说潜规则吧:

静态成员是所有对象共享的,所以不能再静态方法里访问非静态的元素。 非静态方法可以访问类的静态成员,也可以访问类的非静态成员。  
为什么呢?  

再论this指针

 

回顾下:

this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象的地址。 当一个对象被创建时,该对象的 this指针就自动指向对象数据的首地址。   我们从一个比较有特色的例子来体会 this指针的工作原理:   在任何一个方法里都可以使用 this 指针。从本质上讲,C++中的对象其实是一种特殊的结构 -- 除了变量,还包含着一些函数的特殊结构。 在程序运行时,对象的属性(变量)和方法(函数)都是保存在内存里,这就意味着它们各自都有与之相关联的地址。   这些地址都可以通过指针来访问,而 this指针毋庸置疑是保存着对象本身的地址。 每当我们调用一个方法的时候,this指针都会随着你提供的输入参数被秘密的传递给那个方法。 正是因为如此,我们才能在方法里像使用一个局部变量那样使用 this指针。   因为静态方法不是属于某个特定的对象,而是由全体对象共享的,这就意味着它们无法访问 this指针。 所以,我们才无法在静态方法里访问非静态的类成员。  

另外需要注意

  在使用静态属性的时候,千万不要忘记为它们分配内存。具体做法很简单,只要在类声明的外部对静态属性做出声明(就像声明一个变量那样)即可。 静态方法也可以使用一个普通方法的调用语法来调用,但建议不要这么做,那会让代码变得更糟糕! 请坚持使用:
ClassName::methodName(); 请不要使用:
objectName.methodName(); [buy]   [/buy] [Downlink href='http://urlxf.qq.com/?IF36RrY']视频下载[/Downlink] [Downlink href='http://kuai.xunlei.com/d/LMMSGBXIGIFF']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/04/22/3847168.html

你可能感兴趣的文章
JVM概念及结构分析
查看>>
ruby 预定义 常量 & 变量
查看>>
网络-BIO-同步阻塞模型
查看>>
PG 数据库安全
查看>>
jd-core java反编译工具
查看>>
使用Pig计算出每个ip的点击次数
查看>>
macOS 与 Ubuntu 下的cp -R 命令区别
查看>>
DM 源码阅读系列文章(五)Binlog replication 实现
查看>>
HTTP请求格式和http响应格式
查看>>
Java中的数组解析
查看>>
MySql查询某一天的数据
查看>>
python多线程编程—线程的创建、启动、挂起和退出
查看>>
Best Aws Training institutes in Noida
查看>>
QueryList免费在线网页采集数据抓取工具-toolfk.com
查看>>
pl/sql——函数
查看>>
spring的IOC有什么作用
查看>>
实践二:eclipse中新建maven项目
查看>>
使用 MegaCLI 检测磁盘状态并更换磁盘
查看>>
jQuery 最新版本 国内免费CDN 引用方式 以及 Migrate Plugin
查看>>
Oracle高级查询之OVER (PARTITION BY ..)
查看>>