设为首页 - 加入收藏
广告 1000x90
您的当前位置:144177黄大仙有求必应 > 静态函数 > 正文

c++中为什么要有静态成员函数

来源:未知 编辑:admin 时间:2019-05-12

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部我们知道,当调用一个对象的非静态成员函数时,系统会把该对象的起始地址赋给成员函数的this指针。而静态成员函数并不属于某一对象,它与任何对象都无关,因此静态成员函数没有this指针,不能访问本类中的非静态成员。

  在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。

  静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即类名::静态成员名。

  static成员变量属于类(被存放在数据段中),不属于某个具体的对象(具体对象的内存是分配在堆中的),即使创建多个对象,也只为该变量分配一次内存,所有对象使用的都是这份内存中的数据。若它为public类型,当某个对象修改了它,也会影响到其他对象,所有对象都是“同甘共苦的”

  c++规定const静态类成员可以直接初始化,其他非const的静态类成员需要在类外初始化,且不能使用static关键字。我们一般选择在类的实现文件中实现它。

  C++Primer关于静态成员举了个例子,是说一个银行账户类需要一个数据成员来表示当前的利率。在这个类中,我们所希望的是利率与类相关联,而不是与类的每个对象相关联。这个时候就可以用静态成员函数,可以提高效率,而且一旦利率浮动,每个对象也能相应使用新的值。

  静态变量通过类来调用,也可以通过具体对象来调用,但非静态变量只能通过具体对象来调用

本文链接:http://that-a-way.com/jingtaihanshu/55.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top