收藏 分享(赏)

C 静态成员变量和静态成员函数.doc

上传人:HR专家 文档编号:7511263 上传时间:2019-05-20 格式:DOC 页数:10 大小:27KB
下载 相关 举报
C  静态成员变量和静态成员函数.doc_第1页
第1页 / 共10页
C  静态成员变量和静态成员函数.doc_第2页
第2页 / 共10页
C  静态成员变量和静态成员函数.doc_第3页
第3页 / 共10页
C  静态成员变量和静态成员函数.doc_第4页
第4页 / 共10页
C  静态成员变量和静态成员函数.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、C+静态成员变量和静态成员函数数据成员可以分静态变量、非静态变量两种.静态成员:静态类中的成员加入 static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.非静态成员:所有没有加 Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问非静态成员的生存期决定于该类的生存期而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中一个类中也可以包含静态成员和非静态成员,类中也包括静态构造函数和非

2、静态构造函数分两个方面来总结,第一方面主要是相对于面向过程而言,即在这方面不涉及到类,第二方面相对于面向对象而言,主要说明 static在类中的作用。一、在面向过程设计中的 static关键字1、静态全局变量定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量。特点:A、该变量在全局数据区分配内存。B、初始化:如果不显式初始化,那么将被隐式初始化为 0(自动变量是随机的,除非显式地初始化)。C、访变量只在本源文件可见,严格的讲应该为定义之处开始到本文件结束。例(摘于 C+程序设计教程-钱能主编 P103): /file1.cpp/Example 1#include

3、 void fn();static int n; /定义静态全局变量void main()n=20;cout void fn();static int n; /定义静态全局变量(只能在本文件中使用)void main()n=20;cout extern int n;(可在别的文件中引用这个变量)void fn()n+;cout void fn();void main()fn();fn();fn();void fn()static n=10;cout static void fn();/声明静态函数void main()fn();void fn()/定义静态函数int n=10;cout cla

4、ss Myclasspublic:Myclass(int a,int b,int c);void GetSum();private:int a,b,c;static int Sum;/声明静态数据成员;int Myclass:Sum=0;/定义并初始化静态数据成员Myclass:Myclass(int a,int b,int c)this-a=a;this-b=b;this-c=c;Sum+=a+b+c;void Myclass:GetSum()cout fn()。但是与普通函数相比,静态成员函数由于不是与任何的对象相联系,因此它不具有 this指针。从这个意义上讲,它无法访问属于类对象的非静

5、态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数。下面举个静态成员函数的例子。/Example 6#include class Myclasspublic:Myclass(int a,int b,int c);static void GetSum();/声明静态成员函数private:int a,b,c;static int Sum;/声明静态数据成员;int Myclass:Sum=0;/定义并初始化静态数据成员Myclass:Myclass(int a,int b,int c)this-a=a;this-b=b;this-c=c;Sum+=a+b+c; /非静态成员函数可以访问静态数据成员void Myclass:GetSum() /静态成员函数的实现/ cout )为一个类的对象或指向类对象的指针调用静态成员函数,当同一类的所有对象使用一个量时,对于这个共用的量,可以用静态数据成员变量,这个变量对于同一类的所有的对象都取相同的值。静态成员变量只能被静态成员函数调用。 静态成员函数也是由同一类中的所有对象共用。只能调用静态成员变量和静态成员函数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报