浅析C++静态成员函数操作

成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员,如果C++静态成员函数中要引用非静态成员时,可通过对象来引用。下面通过例子来说明这一点。

公司主营业务:成都网站设计、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出娄星免费做网站回馈大家。

 
 
 
  1. #include   
  2. class M  
  3. {  
  4. public:  
  5. M(int a) { A=a; B+=a;}  
  6. static void f1(M m);  
  7. private:  
  8. int A;  
  9. static int B;  
  10. };  
  11.  
  12. void M::f1(M m)  
  13. {  
  14. cout<<"A="<< 
  15. cout<<"B="<< 
  16. }  
  17.  
  18. int M::B=0;  
  19. void main()  
  20. {  
  21. M P(5),Q(10);  
  22. M::f1(P); file://调用时不用对象名  
  23. M::f1(Q);  

读者可以自行分析其结果。从中可看出,调用静态成员函数使用如下格式:

 
 
 
  1. <类名>::<静态成员函数>(<参数表>); 

一个类的静态成员函数不能像非静态成员函数那样“默认调用”它的非静态成员函数(因为静态成员函数没有隐含的this参数)。在一个类的静态成员函数中,只要通过某种方式得到了一个指向本类型的对象的指针。

并且有合适的access   level,   就可以对此对象调用其非C++静态成员函数
1.用来保存对象的个数。  #t#
2.作为一个标记,标记一些动作是否发生,比如:文件的打开状态,打印机的使用状态,等等。  
3.存储链表的***个或者***一个成员的内存地址。  

静态成员函数的作用基本上相当于一个带有命名空间的全局函数
1、你不需要生成一个对象的实例就可以直接使用该函数。如,Cxxx::MyStaticFunc();
2、窗口回调函数需使用静态成员函数或全局函数
3、线程调用需使用C++静态成员函数或全局函数

使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。

当前题目:浅析C++静态成员函数操作
转载注明:http://www.gawzjz.com/qtweb/news27/170227.html

成都网站建设公司_创新互联,为您提供网站设计小程序开发微信公众号手机网站建设品牌网站制作网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联