在上一篇文章中,小编为您详细介绍了关于《求一套电脑组装配置单能胜任魔兽世界和大型单机游戏的?电脑2011年开始用用的小机箱台式机》相关知识。本篇中小编将再为您讲解标题为什么样要用静态成员函数?内存当中的野指针多了会对电脑运行产生什么样样的影响。
初学C++,刚学到静态成员函数,不太懂为什么要加入静态成员函数。
所以就想问问大神们,看能不能解释下。
在研究静态成员函数之前,我们先来考虑考虑为什么C++中会引入静态成员函数。
我们来看下面这个例子
class CStaticMember
{
public:
private:
static int m_nIntA;
};
我们定义①个CStaticMember类,里面包含①个私有的静态成员变量m_nIntA,如果外部想访问或者更改m_nIntA的值,那么根据C++语法的要求,我们必须提供①个成员函数来进行访问。如下我们提供①个公有的GetIntA函数来进行访问。
class CStaticMember
{
public:
int GetIntA()
{
return m_nIntA;
}
private:
static int m_nIntA;
};
我们知道在C++中调用类的成员函数,会传递①个this指针,将类的实例化对象的首地址传递给成员函数,函数操作会根据对象首地址计算其成员变量的地址,然后进行操作。然而静态成员变量并不保存在对象的内存布局中,而是保存在数据段中,因而没有必要用到this指针。所以需要①种独立于对象之外对对象静态成员变量的访问操作。在早期C++引入静态成员函数之前,你会看到下面这样奇怪的写法:
(( CStaticMember*)⓪)->GetIntA();
这样的写法就是为了避免了对象. GetIntA()的操作从而避免了对象的实例化操作,如下所示
编译器生成的代码是先将ecx清⓪,然后直接调用CStaticMember::GetIntA函数。这种写法的优点就在于不用对进行对象实例化操作从而节省了时间和空间。这种写法最早由贝尔实验室的成员Jonathan Shopiro提出,他本人也是引入静态成员函数的主要倡导者。
野指针如果能保证不去动的话,其实①点问题都没有。所以关键问题不再数量上,而在于你知不知道哪个指针不能动。\", \"extras\": \"\", \"created_time\": ①④④③⑦⓪⑦⑧①⑨ · \"type\": \"answer
编后语:关于《为什么样要用静态成员函数?内存当中的野指针多了会对电脑运行产生什么样样的影响》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《K线图有什么样时机意义么?电脑CPU I7-4710和I7-4710HQ的区别好像还有个MQ》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器