1 / 23
文档名称:

C++课件:11.ppt

格式:ppt   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C++课件:11.ppt

上传人:1017848967 2015/11/23 文件大小:0 KB

下载得到文件列表

C++课件:11.ppt

相关文档

文档介绍

文档介绍:目录
第1章 C++概述
第2章数据类型、运算符和表达式
第3章简单的输入/输出
第4章 C++的流程控制
第5章函数
第6章编译预处理
第7章数组
第8章结构体、共同体和枚举类型
第9章指针和引用
第10章类和对象
第11章类和对象的其他特性
第12章继承和派生
第13章多态性
第14章输入/输出流
第15章模板
第一部分面向过程的程序设计
第二部分面向对象的程序设计
第11章类和对象的其他特性
静态数据成员
一个类的不同对象,其数据成员的存储空间是相互独立的。
静态成员
"Cheng"
'F'
20
a b
"Zhang"
'M'
18
class Person
{ char Name[20]; //姓名
char Sex; //性别
int Age; //年龄
public:

};
Person a("Cheng", 'F', 20), b("Zhang", 'M', 18);
如果将类的一个成员定义成静态型的,
则该类的所有对象的该成员共用同一存储空间。
class Sample
{
private:
int a, b, c ;
static int d ; // 定义静态数据成员
……
} s1, s2, s3;
a
b
c
s1 s2 s3
a
b
c
a
b
c
d
Sample::
静态数据成员是属于类的。
——必需在类体外进行
class Sample
{
private:
int a, b, c ;
static int d ; // 定义静态数据成员
……
} s1, s2, s3;
int Sample::d = 10; // 初始化
——
静态数据成员的使用
#include <>
class Sample
{
int n;
static int sum; //静态成员
public:
Sample(int x) { n=x; }
void add( ){ sum+=n; }
void disp( )
{
cout<<"n="<<n<<",sum="<<sum<<endl;
}
};
int Sample::sum = 0; //静态数据成员的初始化
void main( )
{
Sample a(2), b(3), c(5);
( ); ( );
( ); ( );
( ); ( );
// A
cout <<"sizeof(a) : "<<sizeof(a)<<endl;
cout <<"sizeof(b) : "<<sizeof(b)<<endl;
cout <<"sizeof(c) : "<<sizeof(c)<<endl;
}
运行结果是:
n=2, sum=2
n=3, sum=5
n=5, sum=10
sizeof(a) : 4
sizeof(b) : 4
sizeof(c) : 4
必须在类外初始化
使用静态成员是为了解决
对象之间的数据共享问题。
n:2 n:3 n:5
a b c
Sample:: sum: 10
如果将主函数改写为:
void main( )
{
Sample a(2), b(3), c(5);
( ); ( ); ( );
( ); ( ); ( );
}
此程序的运行结果是:
n=2, sum=10
n=3, sum=10
n=5, sum=10
静态成员函数
静态成员函数属于类,就像静态数据成员属于类一样。
(1)只能通过类名调用静态成员函数。
(2)在静态成员函数中只能访问静态数据成员。
静态成员函数的使用
#include <>
class Sample
{ int a;
static int b;
public:
Sample(int x) { a=x; b+=x;}
static void disp(Sample s) // A
{ cout<<"a="<<<<", b="<<b<<endl; } // B
};
int Sample::b=10; //静态数据成员赋初值
void main( )
{
Sample s1(2), s2(3);
Sample::disp(s1); // C
Sample::disp(s2); // D
}
运行结果如下:
a=2, b=15