信管14:静态成员函数示例
2015-04-02 09:30
232 查看
在一个类中,将一个数据成员说明为static,这种成员称为静态数据成员。
与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据成员的拷贝。也就是说,静态数据成员是所有对象共享的数据,不属于哪一个对象,从而实现了同一个类的不同对象之间的数据共享。
说明:
(1) 静态数据成员属于类,或者更准确地说,是属于类中一个对象集合,而不像普通数据成员那样属于某一对象,因此可以使用“类名∷”访问静态的数据成员。用类名访问静态数据成员的格式如下:
类名::静态数据成员名
(2) 静态数据成员初始化应在类外单独进行,而且应在定义对象之前进行。所以一般在主函数之前,类声明之后的特殊地带为它提供定义和初始化。
(3) 对象定义后,公有的静态数据成员,也可以通过对象进行访问,也可以在对象定义之前通过类名来访问。
一般格式: 类名::静态数据成员名
阅读程序回答:
1.分析程序运行结果。
2.解决程序的注释里说明的问题。
与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据成员的拷贝。也就是说,静态数据成员是所有对象共享的数据,不属于哪一个对象,从而实现了同一个类的不同对象之间的数据共享。
说明:
(1) 静态数据成员属于类,或者更准确地说,是属于类中一个对象集合,而不像普通数据成员那样属于某一对象,因此可以使用“类名∷”访问静态的数据成员。用类名访问静态数据成员的格式如下:
类名::静态数据成员名
(2) 静态数据成员初始化应在类外单独进行,而且应在定义对象之前进行。所以一般在主函数之前,类声明之后的特殊地带为它提供定义和初始化。
(3) 对象定义后,公有的静态数据成员,也可以通过对象进行访问,也可以在对象定义之前通过类名来访问。
一般格式: 类名::静态数据成员名
#include<iostream> #include<string> using namespace std; class Student{ private: string name; float score; static int count; //静态数据成员, static float sum; //静态数据成员 static float ave; //静态数据成员 public: Student(string name1, float score1); void show(); static void show_count_sum_ave(); //静态成员函数, }; Student::Student(string name1,float score1 ) { name=name1; score=score1; ++count; sum=sum+score; ave=sum/count; } void Student::show() {cout<<"姓名:"<<name;cout<<" 成绩:"<<score<<endl;} void Student::show_count_sum_ave() {cout<<"学生人数:"<<count<<endl; cout<<"累加成绩:"<<sum<<endl; cout<<"平均成绩:"<<ave<<endl; } int Student::count=0; float Student::sum=0.0; //通过类来访问静态成员。 float Student::ave=0.0; int main() { Student stu1("Liming",90),stu2("zhahai",100); //Student stu3; //如这样来定义一个对象,为什么会出错,如何改正? stu1.show(); stu2.show(); cout<<endl; Student::show_count_sum_ave(); system("pause"); return 0; }
阅读程序回答:
1.分析程序运行结果。
2.解决程序的注释里说明的问题。
相关文章推荐
- 信管14:静态数据成员示例
- 信管14:对象数据成员访问示例
- 信管14:函数模板作业8-15示例
- 信管14:对象的成员访问示例
- 信管14:对象成员示例
- 信管14:函数重载示例
- 信管14:虚函数示例代码一
- 信管14:虚函数示例代码二
- C++类静态数据成员与类静态成员函数
- C++中类的静态数据成员函数解析
- 浅出理解静态成员函数(static member function)
- C++中使用非静态成员函数代替全局函数
- C++类静态数据成员与类静态成员函数
- 普通成员函数调用静态成员数据
- 类的静态方法(函数)中为什么不能调用非静态成员(属性)?
- 多线程函数和静态线程函数调用类成员非静态变量和函数的问题
- C++中静态成员函数访问非静态成员变量
- 通过指针访问类的静态成员函数
- C++中类的静态数据成员函数解析
- Windows API 函数学习(10)---定时器,静态控件示例