C++——静态数据成员

2023-11-04

静态成员分为静态数据成员和静态成员函数

一 静态数据成员的概念

静态数据成员不是某个对象的的成员,而是同一个类所以对象共享的成员,其值对每个对象都是一样的;

静态数据成员具有全局性;是类域中的全局变量,不具体属于哪一个对象。

在运行之前,编译阶段就为静态数据成员分配了存储空间;

 

二 静态数据成员的初始化:

不能在构造函数或者其他成员函数中进行初始化;

要在类体外进行初始化;

//静态数据成员的初始化
//数据类型 类名 作用域限定符::  数据成员 值
int Point::x=1;
int Point::y=2;
int Point::z=3;

 

三 静态数据成员的访问:

1. 访问公有静态数据成员:①通过成员函数 ②通过对象 ③通过类名加作用域限定符(初始化)

2. 访问私有静态数据成员:只能在成员函数中;(初始化例外)

3. 访问保护静态数据成员:只能在成员函数中;(初始化例外)

#include<iostream.h>

class Point
{
private:
	static int x; //静态私有数据成员
public:
	static int y; //静态公有数据成员
protected:
    static int z; //静态保护数据成员
public:
	void showx()
	{
		cout<<"通过成员函数访问静态私有数据成员:x="<<x<<endl;
	}
	void showz()
	{
		cout<<"通过成员函数访问静态保护数据成员:z="<<z<<endl;
	}
	void showy()
	{
		cout<<"通过成员函数访问静态公有数据成员:y="<<y<<endl;
	}
};


//静态数据成员的初始化
//数据类型 类名 作用域限定符::  数据成员 值
int Point::x=1;
int Point::y=2;
int Point::z=3;

int main()
{
	Point p; 
	p.showx();
	p.showy();
	p.showz();
	cout<<"通过对象访问静态公有数据成员:y="<<p.y<<endl;
	cout<<"通过类名+::访问静态公有数据成员:y="<<Point::y<<endl;
	return 0;
}

运行结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++——静态数据成员 的相关文章

随机推荐

  • 代码重构技巧之重复代码

    在我们项目开发的过程中 有时写着写着顺手了 对于一些业务代码 重复编写 导致后来需要修改的时候 得整个项目到处找这些重复代码 这真是一件糟糕的事 一 重复代码 定义 重复代码并不是指的完全一模一样的代码 只要在一段代码 业务处理上 有相识之
  • Maven 学习笔记二十一:Maven仓库(快照版本)

    Maven仓库 快照版本 在Maven的世界中 任何一个项目或者构件都必须有自己的版本 版本的值可能是1 0 0 1 3 alpha 4 2 0 2 1 SNAPSHOT或者2 1 20091214 221414 13 其中 1 0 1 3
  • Cef 模式下,Vue @click 事件偶尔无效问题

    Cef 模式下 Vue 项目 click 事件偶尔无效问题 Cef 模式 使用 C 创建的一个浏览器 有它自己的浏览器内核版本 在 Cef Web 壳子中开发时候 发现 Vue 项目 的 click 偶尔就无效 一开始还以为电脑卡了 具体分
  • 华为OD机试真题 Java 实现【非严格递增连续数字序列】【2022Q4 100分】

    一 题目描述 输入一个字符串仅包含大小写字母和数字 求字符串中包含的最长的非严格递增连续数字序列的长度 比如122889属于非严格递增连续数字序列 二 输入描述 输入一个字符串仅包含大小写字母和数字 输入的字符串最大不超过255个字符 三
  • Linux_4 消息队列

    1 基础概念 消息队列 Unix的通信机制之一 可以理解为是一个存放消息 数据 容器 将消息写入消息队列 然后再从消息队列中取消息 一般来说是先进先出的顺序 消息队列本质上是位于内核空间的链表 链表的每个节点都是一条消息 每一条消息都有自己
  • 多图预警!Ubuntu18.04全套安装流程

    1 Ubuntu系统下载 Ubuntu18 04LTS下载地址 点击跳转 对于软件开发人员 建议下载Ubuntu18 04LTS 支持相对较多较稳定 2 下载软碟通软件 UltraISO UltralISO下载链接 点击跳转 3 安装使用
  • 三目运算符判断多个条件的使用方法

    写项目的时候数据状态有三种 给三种不同的样式 然后发现可以简单地使用三目运算符 就可以实现多个条件的判断 span scope row status span 也就是这个用法 key 1 第一种 key 2 第二种 key 3 第三种 第四
  • 总结一下query中ajax的几种方法

    1 ajax ajax type POST 提交数据的类型 POST GET url testLogin aspx 提交的网址 提交的数据 data Name sanmao Password sanmaoword 返回数据的格式 datat
  • opencv-python帧差法

    代码如下 import cv2 import numpy as np cap cv2 VideoCapture E chinese ocr master xinwen 3 avi Check if camera opened success
  • 第11课 微信小程序多种弹窗提示样式

    第11课 微信小程序弹窗提示样式 消息提示 wx showToast Object object 关闭消息提示 wx hideToast Object object 弹窗选框提示 wx showModal Object object 加载提
  • 2017阿里笔试 用模板库中的vector解决笔试中的兔子繁殖问题

    问题介绍 1 猎人把一对兔子婴儿 一公一母称为一对 放到一个荒岛上 两年之后 它们生下一对小兔 之后开始每年都 会生下一对小兔 生下的小兔又会以同样的方式继续繁殖 2 兔子的寿命都是x x gt 3 年 并且生命的最后一年不繁殖 3 如果岛
  • R语言学习笔记:从零开始?数据结构和基础知识

    R语言是一种数学编程语言 主要用于统计分析 绘图 数据挖掘 其在生物信息大数据分析处理过程中扮演着重要角色 笔者从今天开始分享R语言学习笔记 环境安装 Windows 官方地址 https cloud r project org bin w
  • Linux下socket多路复用应用--select函数

    Linux下socket多路复用应用 select函数 Select系统调用是用来让我们的程序监视多个文件描述符 file descriptor 的状态变化的 程序会停在select这里等待 直到被监视的文件描述符有某一个或多个发生了状态改
  • Qt打包发布程序,打包安装程序和打包为单个exe可执行程序,图文教程

    Qt打包发布程序 打包安装程序和打包为单个exe可执行程序 图文教程 1 前言 当我们用Qt制作好软件后 要将程序拷贝到别人的电脑上使用 如果直接拷贝exe是无法运行的 本教程将介绍如何将制作好的Qt软件打包发布 2 将Qt程序生成rele
  • 二、Cesium加载影像,地形、设置视角

    一 影像 1 启动api服务 在下载的Cesium解压根目录下的 Build Documentation下执行 hs p 8082 然后访问http 192 168 1 155 8082 index 2 搜索viewer 可以看到创建vie
  • MySQL常见面试题(四)

    前言 在进行数据库设计和优化的过程中 我们不得不面对多样化的技术和方法来确保我们的系统可以高效 可靠地运行 为了深入了解和掌握这个领域 我们将讨论InnoDB存储引擎的多种索引类型 以及索引的不同方面和分类 我们还将深入探讨为什么通常推荐使
  • java断点_Java 断点调试总结

    为了准备调试 你需要在代码中设置一个断点先 以便让调试器暂停执行允许你调试 否则 程序会从头执行到尾 你就没有机会调试了 1 条件断点 断点大家都比较熟悉 在Eclipse Java 编辑区的行头双击就会得到一个断点 代码会运行到此处时停止
  • JavaScript学习(三)javaScript基础语法

    文章目录 基础知识 变量 if语句 函数定义 输出内容 alert消息对话框 confirm 消息对话框 prompt消息对话框 打开新窗口 关闭窗口 练习 基础知识 变量 申明 var 变量名 var 用来定义变量 这个用法在很多语言里都
  • gorm - database操作利器

    前言 ORM 即 Object Relational Mapping 全称 对象关系映射 程序中当需要对数据库进行操作时 势必需要通过连接数据库 调用sql语句 执行sql语句等操作 ORM将数据库中的表 字段 行于我们面向对象编程的类及其
  • C++——静态数据成员

    静态成员分为静态数据成员和静态成员函数 一 静态数据成员的概念 静态数据成员不是某个对象的的成员 而是同一个类所以对象共享的成员 其值对每个对象都是一样的 静态数据成员具有全局性 是类域中的全局变量 不具体属于哪一个对象 在运行之前 编译阶