C++ 之类的静态成员
一.静态数据成员:
1.如果想在同类的多个对象之间实现数据共享,也不要用全局变量,可以用静态的数据成员;
2.静态数据成员属于类,而不属于对象,静态数据成员是在所有对象之外单独开辟空间,所有对象都共享这些数据成员;
3.静态数据成员是在程序编译时被分配空间的,到程序结束时才释放空间;
4.静态数据成员可以初始化,但只能在类体外进行初始化;
如: int Box::height = 10; // 表示对Box类的数据成员初始化
5.静态数据成员既可以通过对象名引用,也可以通过类名引用;
6.静态数据成员被定义为私有后,则不能在类外直接引用,必须通过公用的成员函数引用;
#include <stdio.h>class time
{
public:void printf_test(void);
private:static int test;
};void time::printf_test(void)
{printf("test = %d\n",test);
}int time::test = 10;int main()
{time t1;t1.printf_test();return 0;
}
二.静态成员函数
1.静态成员函数属于类,不属于对象,没有this指针,不能直接访问本类中的非静态成员;
2.公用静态成员函数可以在类外直接调用,通用通过对象或类名直接调用;类名需要加域运算符"::";
#include <iostream>using namespace std;
class Student
{
public:Student(int n,int a,float s):num(n),age(a),score(s){};void total();static float average();
private:int num;int age;float score;static float sum;static int count;
};void Student::total()
{sum+=score;count++;
}float Student::average()
{return(sum/count);
}float Student::sum = 0;
int Student::count = 0;int main()
{Student stud[3]={Student(1001,18,70),Student(1002,19,78),Student(1005,20,98)};int n;cout<<"please input the number of students";cin>>n;for(int i=0; i<n; i++)stud[i].total();cout<<"the average score of"<<n<<"student is"<<Student::average()<<endl;return 0;
}
C++ 之类的静态成员相关推荐
- 为什么静态方法无法直接调用非静态成员变量和方法
静态方法无法直接调用非静态成员变量和方法 看到这句话,要想到形容的是这样的如下 静态方法里面无法调用非静态变量 下面在写一个对比非静态的方法和静态方法调用变量对比 问题原因 静态变量和静态的方法是属于 ...
- C++ 笔记(18)— 类和对象(this 指针、指向类的指针、类静态成员变量和函数)
1. this 指针 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址. this 指针是所有成员函数的隐含参数.因此,在成员函数内部,它可以用来指向调用对象. 友元函数没有 thi ...
- c++静态成员函数好处
静态成员函数主要为了调用方便,不需要生成对象就能调用. 比如: class X { public:void MethodA();static void MethodB(); } 此时MethodB可以 ...
- 谁知道静态成员的纠结心境
我们在实际开发的过程中,可能需要某些类的成员变量并不是针对每一个对象的,而是针对每一个类而言的,比如在银行中有一个利率数据,我们希望的是,当一个利率改变的时候,所有的对象都能够看到这个改变的数据,并利 ...
- 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...
- 友元函数、类的非静态成员函数、静态成员函数的区别
类中申明的函数相对于类来说有三层意思: 1.有this指针 2.函数在类的作用区域中 3.可以访问类中私有部分 4.可以被继承 非静态成员函数具有1234 静态成员函数具有234 友元函数具有3 静态 ...
- C++类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...
- php面向对象静态常量,浅谈PHP面向对象编程(四、类常量和静态成员)
4.0 类常量和静态成员 通过上几篇博客我们了解到,类在实例化对象时,该对象中的成员只被当前对象所有.如果希望在类中定义的成员被所有实例共享. 此时可以使用类常量或静态成员来实现,接下来将针对类常量和 ...
- C++中类的静态成员
1.Cpp中类的静态成员 可以使用static关键字来把类成员定义为静态的.当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本.静态成员在类的所有对象中是共享的.如果不 ...
- Effective C# 原则13:用静态构造函数初始化类的静态成员(译)
Effective C# 原则13:用静态构造函数初始化类的静态成员 Item 13: Initialize Static Class Members with Static Constructors ...
最新文章
- jquery mobile 页面间的传递参数
- html引入php文件中的函数,在b2core框架和simple_html_dom.php文件里面都有一个load()函数...
- 计算机不会输入函数怎么办,函数不正确_电脑上文件打不开,显示函数不正确怎么解决?...
- MySQL触发器介绍
- python鸢尾花数据集_Python实现鸢尾花数据集分类问题——使用LogisticRegression分类器...
- java版本微信jssdk、微信验证签名demo(Servlet)
- C++map容器遍历删除:cannot increment value-initialized map/set iterator
- cname 别名记录 解析过程_云解析是什么?需要购买吗?
- TCP/IP、Http的区别
- 开发了一套python的七牛sdk
- 基于留一法的快速KNN代码
- 打算好好系统学一学前段
- Atitit oil painting article list sumup s55 C:\Users\Administrator\Desktop\油画技术资料包\Atitit Atitit 图像
- windows资源管理器管理工具Qttabbar个人使用总结
- 甲乙丙丁四个人去商店每人买了一台计算机,2016国考行测备考:巧用矛盾速解题...
- HTML5网页编辑基础(简介+基础标签使用)
- Android基于安卓手机个人理财系统
- 算力大革命 智能经济新时代
- Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN
- 平台业务收款分账产品设计 - 总览