C++之静态成员变量和静态成员函数

静态成员变量
关键字 static 可以用于说明一个类的成员,
静态成员提供了一个同类对象的共享机制
把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员
静态成员局部于类,它不是对象成员,在类的外部进行初始化

静态成员函数数冠以关键字static
静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针
在类外调用静态成员函数用 “类名 :: ”作限定词,或通过对象调用
疑难问题:静态成员函数中,不能使用普通变量,只能使用静态成员变量

#include <stdio.h>class Test11
{
public:Test11 (int b){m_b = b;}void print(){printf ("m_a = %d, m_b = %d\n", sm_a, m_b);}// 静态成员函数只能使用静态成员变量static void printA(){//  printf ("m_a = %d, m_b = %d\n", sm_a, m_b);printf ("m_a = %d\n", sm_a);}
public:// 静态成员变量,属于类,不属于某个对象// 是所有对象共享的,静态是在数据区分配,只有一个备份// 静态变量不能由某个对象进行初始化// 静态变量必须在类的外部重新定义并且初始化static int sm_a;int m_b;
};// 重新定义类的静态变量并且初始化
int Test11::sm_a = 100;   int main11_1()
{Test11 t(10), t2(20), t3(30);t.print();// 类的静态变量的使用// 1、通过某一个对象进行引用t2.sm_a = 30;t.print();// 2、通过类名来引用Test11::sm_a = 60;t3.print();Test11::printA();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

熄火/死火

定义 当反应器正在以显著的反应速率进行操作时&#xff0c;若降低进料入口的温度&#xff0c;使它达到多重态区域的下限&#xff0c;反应速度会突然大幅度下降&#xff0c;反应基本上停止。这个现象称为熄灭。相应的入口温度称为熄灭点。一般指的是汽车熄火。发生原因 有…

H3C 以太网集线器

转载于:https://www.cnblogs.com/fanweisheng/p/11169349.html

解决: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 问题描述&#xff1a;阿里云服务器 磁盘初始化之后用 git-bash ssh rootxx.xx.xx.xx 方式登陆服务器&#xff0c;报错如下。 WARNIN…

C++之面向对象模型

C对象模型可以概括为以下2部分&#xff1a; 1. 语言中直接支持面向对象程序设计的部分&#xff0c;主要涉及如构造函数、析构函数、虚函数、继承&#xff08;单继承、多继承、虚继承&#xff09;、多态等等。 2. 对于各种支持的底层实现机制。 在c语言中&#xff0c;“数据”…

netty接收大文件的方法

参考:http://blog.csdn.net/linuu/article/details/51371595 https://www.jianshu.com/p/a0a51fd79f62 netty默认是只能接收1024个字节&#xff0c;但是我们要传输大文件怎么办&#xff1f; 上代码&#xff1a; 改之后服务端&#xff1a; package server;import io.netty.boots…

制动失灵

定义 制动过程中&#xff0c;由于制动器某些零部件的损坏或发生故障&#xff0c;使运动部件(或运动机械)不能保持停止状态或不能按要求停止运动的现象。制动失灵的原因 制动失灵的关键在于制动系统无法对汽车施加足够的制动力&#xff0c;包括制动液管路液位不足或进入…

webpack 入门,说一下那些不入流的知识点、module.exports{ } 中配置说明

先说说Vue-Cli&#xff08;Vue项目脚手架&#xff09; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 关于它能干什么&#xff0c;就不再赘述了&#xff0c;我们主要谈谈生成的与webp…

myeclipse2013 jad反编译插件安装

https://blog.csdn.net/zhenshixian88/article/details/26454319 1. 下载插件工具 http://download.csdn.net/detail/zwj_lmss/6697259 2. 里面有两个文件 1).JAD.EXE随便找个地方丢进去(我是随便放哪边的,不过有的人有问题,最后放在了jdk的bin下面.可能他们没有配置环境变量);…

转向失控

定义 转向失控就是方向盘不管用了&#xff0c;打方向盘&#xff0c;但是前轮不动&#xff0c;不受方向盘控制。转向失控的原因 转向失控可能因为车辆过快、酒驾、疲劳、车况不佳、雨雪路滑等&#xff0c;还有转向机构中有零部件脱落、损坏、卡滞时&#xff0c;也会使转向机…

this 的指向问题

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 this的指向已经是一个老生常谈的问题&#xff0c;每逢面试都要去复习复习&#xff0c;近来巩固js的基础&#xff0c;决心彻底掌握这个知…

C++之全局函数和成员函数的转换

全局函数和成员函数 把全局函数转化成成员函数&#xff0c;通过this指针隐藏左操作数 Test add(Test &t1, Test &t2)》Test add(Test &t2) 把成员函数转换成全局函数&#xff0c;多了一个参数 void printAB()》void printAB(Test *pthis) 函数返回元素和返回引…

HDU 3916 Sequence Decomposition 【贪心】

这道题目的题意就是使用题目中所给的Gate 函数&#xff0c;模拟出输入的结果 当然我们分析的时候可以倒着来&#xff0c;就是拿输入去减 每次Gate 函数都会有一个有效范围 这道题目求的就是&#xff0c;找出一种模拟方法&#xff0c;使得最小的有效范围最大化。 是一道【贪心】…

爆胎

定义 即轮胎爆裂。车辆的缺气(轮胎胎压低于标准胎压)行驶时&#xff0c;随着胎压的下降&#xff0c;轮胎与地面的摩擦成倍增加&#xff0c;胎温急剧升高&#xff0c;轮胎变软&#xff0c;强度急剧下降。这种情况下&#xff0c;如果车辆高速行驶&#xff0c;就可能导致爆胎。…

不要再问我跨域的问题了

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 跨域这两个字就像一块狗皮膏药一样黏在每一个前端开发者身上&#xff0c;无论你在工作上或者面试中无可避免会遇到这个问题。为了应付面…

SSM集合

SSM集成 1. Spring和各个框架的整合 Spring目前是JavaWeb开发中最终的框架&#xff0c;提供一站式服务&#xff0c;可以其他各个框架整合集成 Spring整合方案 1.1. SSH ssh是早期的一种整合方案 Struts2 &#xff1a; Web层框架 Spring &#xff1a; 容器框架 Hibernate &#…

浅谈 CSRF 攻击方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一.CSRF是什么&#xff1f; CSRF&#xff08;Cross-site request forgery&#xff09;&#xff0c;中文名称&#xff1a;跨站请求伪造&a…

C++之运算符重载(上)

1、概念 所谓重载&#xff0c;就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义&#xff0c;使之实现新功能&#xff0c;因此&#xff0c;一个函数名就可以用来代表不同功能的函数&#xff0c;也就是”一名多用”。 运算符也可以重载。实际上&#xff0c;我们…

手刹

定义 考手刹的专业称呼是辅助制动器&#xff0c;与制动器的原理不同&#xff0c;其是采用钢丝拉线连接到后制动蹄上&#xff0c;以对车子进行制动。作用 用于平地斜坡停车时制动&#xff0c;防止车子在无人状态下自动滑跑&#xff0c;逼免发生交通事故。工作原理 其原…

关于[super dealloc]

销毁一个对象时&#xff0c;需要重写系统的dealloc方法来释放当前类所拥有的对象&#xff0c;在dealloc方法中需要先释放当前类中所有的对象&#xff0c;然后再调用[super dealloc]释放父类中所拥有的对象。如先调用[super dealloc]将释放掉父类中所拥有的对象&#xff0c;当前…

C++之运算符重载(下)

4.提高 1.运算符重载机制 编译器实现运算符重载实际上就是通过函数重载实现的&#xff0c;可分为全局函数方式&#xff0c;也可分为成员函数方式进行重载&#xff0c;并没有改变原操作符的属性和语义。只是针对某个特定类定义一种新的数据类型操作。 2.重载赋值运算符 赋值…