码迷,mamicode.com
首页 > 编程语言 > 详细

C++类中静态变量和静态方法的注意事项

时间:2015-07-26 14:15:55      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:c++   静态变量   静态方法   

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

static成员的所有者是类本身和对象,但是多个对象拥有一样的静态成员。从而在定义对象时不能通过构造函数对其进行初始化; 静态成员不能在类定义里边初始化,只能在class body外初始化; 静态变量依旧符合public、private、protect特性; 静态成员函数没有this指针,它不能返回非静态成员,因为除了对象会调用它外,类本身也可以调用 。

一 静态变量
1、静态变量必须在外部定义和赋值
a、不能在 main() 函数中定义
技术分享

b、不能在类的构造函数中定义
技术分享

2、必须要定义静态变量,否则该变量没有内存空间(类中只是申明)
技术分享

3、类本身可以直接调用静态变量
技术分享

4、静态变量依旧符合public、private、protect特性
技术分享

二 静态方法
1、静态方法可以被类直接调用,但是同静态变量一样符合public、private、protect特性
技术分享

2、静态成员函数不可以调用类的非静态成员。因为静态成员函数不含this指针。
技术分享

3、静态成员函数不可以同时声明为 virtual或后缀const 函数。因为virtual就是用来区分是哪个对象调用了他,与静态方法矛盾。而后缀const是用来修饰this指针的,静态变量中不包含this指针。
a、不可以同时声明为 virtual
技术分享

b、不可以同时声明为后缀const
技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++类中静态变量和静态方法的注意事项

标签:c++   静态变量   静态方法   

原文地址:http://blog.csdn.net/nwd0729/article/details/47067549

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!