浅析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.36103.cn/qtweb/news21/25671.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

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