📄 static.cpp
字号:
#include <iostream.h>
//静态数据成员
/*
1.静态成员函数不能在类的声明中进行初始化,因为在类中不给它分配内存空间,
它需要在类以外的其他地方(一般是在类的声明之后和mian( )开始之前的某处)
提供定义和初始化。缺省情况下,静态成员被初始化为零。
2.静态数据成员和静态变量一样,是在编译时创建并初始化的。它在该类的任何
对象被建立之前就存在,可以在程序内部不依赖于任何对象被访问。
3.支持静态数据成员的原因是为了避免使用全局变量,避免破坏对类的封装。
主要用于定义类的各个对象的公共数据。
*/
class CStudent {
static int Count;
int StudentNo;
public:
CStudent ( )
{
Count ++;
StudentNo = Count;
}
void Show ( )
{
cout << "Student" <<StudentNo << " ";
cout << "Count = "<<Count<< endl;
}
};
int CStudent::Count = 0; // 定义,并给静态数据成员赋初值
void main( )
{
CStudent Student1;
CStudent Student2;
CStudent Student3;
CStudent Student4;
Student1.Show( );
Student2.Show( );
Student3.Show( );
Student4.Show( );
}
//静态成员函数
/*
1.它可以在建立任何对象之前处理静态数据成员,这是普通成员函数不能实现的功能。
2.在静态成员函数中间不存在this指针,因为它不与特定对象相联系。
*/
/*
class CStudent {
static int Count;
static float TotalAge;
int Age;
int StudentNo;
public:
CStudent (int age);
void Show ( );
static void ShowAveAge ( );
} ;
int CStudent::Count=0;
float CStudent::TotalAge=0;
CStudent :: CStudent (int age)
{
Count ++;
StudentNo = Count;
Age = age;
TotalAge = TotalAge + float ( Age );
}
void CStudent :: Show ( )
{
cout << "Student" << StudentNo ;
cout << "\'s age is" << Age << endl;
}
void CStudent :: ShowAveAge ( )
{
float ave_age;
ave_age = TotalAge / float(Count);
cout << "Number of Student is :" << Count << endl ;
cout << "Their ave_age is :" << ave_age << endl;
}
void main()
{
CStudent std1(22), std2(20), std3(21);
std1.Show( );
std2.Show( );
std3.Show( );
CStudent :: ShowAveAge ( );
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -