1, static 成员变量实现了同类对象间信息共享。
2, static 成员类外存储, 求类大小, 并不包含在内。
3, static 成员是命名空间属于类的全局变量, 存储在 data 区。  不在堆栈中。
4, static 成员只能类外初始化。!!! 无论是private 还是public
5, 可以通过类名访问(无对象生成时亦可), 也可以通过对象访问。
 
1, 静态成员函数的意义, 不在于信息共享, 数据沟通, 而在于管理静态数据成员, 完
成对静态数据成员的封装。
2, 静态成员函数只能访问静态数据成员。 原因 : 非静态成员函数, 在调用时this 指
针被当作参数传进。而静态成员函数属于类, 而不属于对象, 没有 this 指针。

#if 0
1, static 成员变量实现了同类对象间信息共享。
2, static 成员类外存储, 求类大小, 并不包含在内。
3, static 成员是命名空间属于类的全局变量, 存储在 data 区。  不在堆栈中。
4, static 成员只能类外初始化。!!! 无论是private 还是public
5, 可以通过类名访问(无对象生成时亦可), 也可以通过对象访问。1, 静态成员函数的意义, 不在于信息共享, 数据沟通, 而在于管理静态数据成员, 完
成对静态数据成员的封装。
2, 静态成员函数只能访问静态数据成员。 原因 : 非静态成员函数, 在调用时this 指
针被当作参数传进。而静态成员函数属于类, 而不属于对象, 没有 this 指针。#endif#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;class Student
{
public:Student(int id,double score){m_id = id;m_score = score;count++;sum += score;}~Student(){count--;sum -= m_score;}//静态成员函数只能访问静态数据成员。static double getCount(){return  count;}static double getAverage() {return sum / count;}//初始化必须在类外部
//因为是公有成员,类外可以直接使用 Student::count
//  static int count;//记录学生总数
//  static double sum;//记录学生总分private:int m_id;double m_score;//初始化必须在类外部//因为是私有成员,类外不能直接使用static int count;//记录学生总数static double sum;//记录学生总分};//初始化必须在类外部
int Student::count = 0;
double Student::sum = 0;int main()
{Student s1(10, 80);Student s2(11, 90);Student s3(12, 100);cout << "学生个数是: " << Student::getCount() << endl;cout << "平均分是: " << Student::getAverage() << endl;//如果count和sum在public中,可以直接使用//cout << "学生个数是: " << Student::count << endl;//cout << "平均分是: " << Student::sum/Student::count << endl;}

static 静态成员变量和静态函数 C++相关推荐

  1. C++学习10 static静态成员变量和静态成员函数

    一般情况下,如果有N个同类的对象,那么每一个对象都分别有自己的成员变量,不同对象的成员变量各自有值,互不相干.但是有时我们希望有某一个或几个成员变量为所有对象共有,这样可以实现数据共享. 可以使用全局 ...

  2. C++ static静态成员变量详解

    对象的内存中包含了成员变量,不同的对象占用不同的内存(已在<C++对象的内存模型>中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响.例如有两个相同类型的对象 a.b, ...

  3. c++,static 静态成员变量 / 静态成员函数

    静态成员变量: //静态成员变量(static) // //1.如果想在同类的多个对象之间实现数据共享 ,可以用静态 //成员变量,即用static修饰的成员变量,例 static int a; // ...

  4. C++ static静态成员变量

    在C++中,我们可以使用静态成员变量来实现多个对象共享数据的目标.静态成员变量是一种特殊的成员变量,它被关键字static修饰,例如: class Student{public:Student(cha ...

  5. c/c++教程 - 2.4.2.7~8 类对象作为类成员,static静态成员变量函数

    目录 4.2.7 类对象作为类成员 4.2.8 静态成员 相关教程 4.2.7 类对象作为类成员 C++类中的成员可以是另一个类的对象,我们称该成员为 对象成员. 例如: class A {} cla ...

  6. qt 静态成员变量_Qt 静态成员函数的调用非静态成员变量,非静态成员函数

    在多人开发的项目中,一些通用的工具类接口可以用静态成员函数.方便调用,并且不容易调用错误. 静态成员函数不传递this指针(不能->),不识别对象个体,所以经常用于对静态数据成员进行操作.不能操 ...

  7. c++中静态成员变量和静态成员函数

    静态成员变量 在一个类中,若将一个成员变量声明为static,这种成员成为静态成员变量,与一般的数据成员不同,无论建立了多少个对象,都只想有一个静态数据的拷贝,静态成员变量,属于某个类,所有对象共享 ...

  8. static的三种用法,定义静态变量,静态函数,静态代码块!

    static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...

  9. 静态成员变量和静态成员函数(static)

    数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配 ...

最新文章

  1. java自定义类加载器
  2. 一个XOR问题的实例---神经网络的权重到底是如何变化的
  3. Linux-Android启动之zImage生成过程详解
  4. mongodb索引使用
  5. 基于NodeJS的HTTP server Plus 2:防盗链(referer)
  6. XElement.Load 需要释放吗_因为信用卡逾期还不上坐牢了,刑满释放后,还需要继续还钱吗?...
  7. wcf高并发 mysql_WCF 高并发时客户端发送和服务端接收存在等待或延迟
  8. 动态规划之编辑距离问题
  9. Asp.net mvc 网站之速度优化 -- Memcache
  10. sync是同步还是非同步_高速AD项目学习笔记——实现sync同步的经验
  11. Qt 基于Google引擎的拼音输入法
  12. 创世神曲java官网_创世神曲官网下载
  13. IDAPython 让你的生活更滋润 part1 and part2
  14. Intel处理器家族及命名规则
  15. opnet统计量介绍
  16. Android SD卡简单的文件读写操作
  17. 响铃:只做“连接器”,企业微信如何实现“人即服务”
  18. 计算机科学与技术要求具备的能力,计算机科学与技术专业毕业要求及指标点(2019版)...
  19. 通信人眼里的ABC……
  20. 机器学习:线性模型通过python创建机器模型最终预测出儿童身高

热门文章

  1. 配置overlay(overlayfs)根目录挂载构建debian
  2. DDoS攻击的大量增加给企业带来了新的威胁——Vecloud
  3. PostgreSQL和Excel的数据合并
  4. CS231n 学习笔记(2)——神经网络 part2 :Softmax classifier
  5. python字符串、元组常用操作
  6. 第6次全天课笔记-20180819
  7. bzoj 4010 菜肴制作
  8. java概述与基础知识
  9. php中json_encode中文编码问题分析
  10. 递归解决CSDN论坛上的小朋友分苹果问题