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

C++面向对象学习-类的静态成员

时间:2016-04-18 01:07:28      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 1    静态数据成员
 2 1sizeof 运算符不会计算静态成员。
 3 
 4 2,对静态成员数据初始化的顺序为它们在类体外声明的顺序。
 5 
 6 3,静态数据成员被类的所有对象所共享,包括该类的派生类对象。
 7 
 8 4,静态成员数据也可以分为公有的、私有的和受保护的静态成员。
 9 对公有静态成员,即可以通过类的对象进行访问,也可以通过类名直接访问。
10 私有的和保护的静态成员数据则只能被该类的公有成员函数访问。
11 
12 5,在创建任何对象之前,类的静态成员数据已经存在并可以引用。
13 
14 6,静态数据成员的类型可以是所属类的类型,非静态数据成员则不可以。
15 class Student{
16     public:
17         static Student stu1;  //静态数据成员,属于整个类,内存只有一份
18         Student stu2;         //error
19         Student *pstu;        //指针
20         Student &rstu;        //引用
21 };
22 Student::stu1::stu1::stu1::...::stu1等价于Student::stu1。
23 静态数据成员是自定义数据类型时的初始化
24 class A{
25     public:
26         A(int);
27 };
28 class B{
29     private:
30         static A a;
31 };
32 A B::a(2);
33 
34 
35    静态成员函数
36 1,静态数据成员和静态成员函数都属于整个类,而不是某个具体对象。在程序开始运行时就为静态成员数据分配存储空间。
37 所以,对静态成员函数的引用不需要对象名(需引用类名)。
38 class Student{
39     public:
40         static func();
41 };
42 
43 int main(){
44     Student::func();   //here!
45     return 0;
46 }

 

C++面向对象学习-类的静态成员

标签:

原文地址:http://www.cnblogs.com/shuiming/p/5402861.html

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