C++学习——静态成员
来源:互联网 发布:数据清洗与整合平台 编辑:程序博客网 时间:2024/06/05 18:18
静态成员包括 静态数据成员 和 静态成员函数。当一个类的成员说明为static时,该类创建的所有对象都共享这个static成员,因此,静态成员是局部于类,而不是某个对象的特有成员。
静态数据成员:
如果定义n个同类的对象,那么每个对象都分别拥有自己的数据成员,各自有值,互不相关。有时需要某些数据成员在同类的多个对象之间可以共享,这就需要应用静态数据成员来实现。
在一个类中,若将一个数据成员说明为static,则该数据称为静态数据成员,它告诉编译器,无论建立多少个该类的对象,所有对象都共享一份静态数据成员。因此,静态数据的值对每个对象都是一样的。对静态数据成员的更新,就是对所有对象的该静态数据成员值的更新。
#include>num; cout<<"name?"; cin>>name; cout<<"age?"; cin>>age;}void Student::Disp(){ cout<<"学生的基本信息"; cout<"学号"< 代码运行结果:0 1 1 2 2 2说明:1、静态数据成员只在类内声明时使用static关键字。2、静态数据成员一定要在类体外进行初始化。3、一般数据成员是在对象建立时分配控件,在对象删除时释放空间。而静态数据成员是在程序编译时分配空间,到程序结束时释放空间。4、静态数据成员在所有对象之外单独存放,而不占用对象的存储空间。5、与普通的数据成员一样,静态数据成员也有public、private、protected之分。在类外只能访问public的静态数据成员,不能访问private、protected的静态数据成员,访问形式有两种:类名::静态数据成员名对象名.静态数据成员名静态成员函数:静态成员函数主要用来访问类的静态成员,不能直接访问类的非静态成员。与静态数据成员一样,类外调用public静态成员函数时候,可有两种形式:<类名>::<静态成员函数名>(<参数表>)<对象名>.<静态成员函数名>(<参数表>)/*题目:已知班级学生的学号、姓名、英语成绩、数学成绩,求各门功课的平均成绩。要求能单独求出某门课程的平均成绩。分析:数据成员 对象独有:num(学号)、name(姓名)、english(英语成绩)、math(数学成绩) 对象共享:number(人数)、sum1(英语总分)、sum2(数学总分),定义为static成员分析:成员函数 构造函数:对num、name、english、math数据成员进行初始化,并累加统计总人数。 求总分函数Total:计算总成绩sum1、sum2 求平均值函数Aver1、Aver2:类内所有对象共享定义为static成员*/#includeusing namespace std;class Student{ public: Student(); void Init(); void Disp(); void Total(); static float Aver1(); static float Aver2(); static int number; static float sum1; static float sum2; private: int num; char name[10]; float english; float math;};int Student::number = 0;int Student::sum1 = 0;int Student::sum2 = 2;Student::Student(){ Init(); number+=1;}void Student::Init(){ cout<<"xuehao?"; cin>>num; cout<<"name?"; cin>>name; cout<<"english score?"; cin>>english; cout<<"math score"; cin>>math; } Void Student::Disp(){ cout<<"xuehao:"< 说明:1、静态成员函数是一个特殊的成员函数,它的调用不依赖于任何一个特定的对象,因此静态成员函数中没用隐含的this指针,因此,即使通过对象调用也不会传递当前对象的地址,所以,在静态成员函数中,如果要引用非静态成员则要提供访问的对象。一般,静态成员函数主要是引用静态成员。2、静态成员函数可以实现在建立任何对象之前处理静态数据成员,完成建立任何对象之前都需要的与操作,这是非静态成员函数所不能实现的。
阅读全文
0 0
- C#—静态成员和实例成员
- C++——静态成员
- Object-C学习——类的静态成员
- C++——static静态成员
- C#——面向对象——静态成员和静态类——静态成员
- C++学习——静态成员
- .Net C#(类的静态成员/属性)——学习笔记
- C++静态成员学习笔记
- C#——面向对象——静态成员和静态类——静态类
- C++学习笔记1——静态成员
- C++_静态成员
- C++_静态成员
- C++_静态成员
- C++【静态成员】
- [C++] 静态成员函数
- C++-静态成员
- C++---静态成员
- c++--静态成员变量
- 中文使用ofstream/wfstream/qtextstream写入
- CDQZ Challenge 6
- mysql中索引利用情况(explain用法)
- poj3617贪心,易错
- 图论--Tarjan求强联通分量
- C++学习——静态成员
- 烧水问题
- I
- 记录关于微信开发中遇到的curl请求https的方法
- Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on proj
- POJ 2738 Two Ends(记忆化搜索+dp)
- 2017.8.10------总结+感悟
- CSDN第一篇,begin~
- 欢迎使用CSDN-markdown编辑器
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
万得封箱胶
求购封箱胶
封箱胶生产
封箱胶机器
封箱胶设计
封箱胶报价
红色封箱胶
封箱胶条
高级封箱胶
粘箱机
3m胶带批发
美纹纸胶带一箱多少钱
封的组词
封字组词
封怎么组词
封的组词有哪些
封缝胶厂家
封缝胶
拔罐减肥有封罐说法么
自动封罐机
给英语老师的一封英语信
封行朗
封行朗林雪落
封行朗和林雪落大结局
林雪落封行朗全文免费
封行朗林雪落 大周周
林雪落封行朗入骨暖婚
保鲜自封袋
自封骨袋
真空自封袋
自封袋品牌
自封袋加厚
自封袋价格
自封袋生产
磨砂自封袋
自封样品袋
白色自封袋
自封袋 超市
保鲜袋封口
塑料封袋
自封袋批发