C++中类的静态成员变量和静态成员函数
静态成员变量:
- 在类里用static对变量定义,缺省时初始化为0,不能在类中初始化,因为static变量在类实例化之前就已经存在。
- 在类外用
<数据类型><类名>::<静态数据成员名>=<值>
进行初始化,记住不用加static,这是为了和普通的static变量区分。
静态成员函数:
类的静态成员函数不能调用非静态成员函数
原因:因为类的静态成员函数在未实例化对象之前类加载的时候就已经分配空间,而非静态成员函数在实例化对象之后才分配空间,所以类的静态成员函数不能调用非静态成员函数。
类和对象都可以调用静态成员函数,但是静态成员函数无this指针,所以本质上都是通过
::
调用原因:因为静态成员函数是属于类的, 所以类和对象都可以调用。
非静态成员函数如果内部没有非静态成员,是可以通过类名调用的,否则只能通过对象调用。
非静态成员函数可以调用类的静态成员函数和直接访问静态成员变量
原因:因为调用非静态成员函数时之前静态成员函数已经分配空间,故可以调用。静态成员变量同理。
静态成员函数不能直接访问非静态成员变量,但可以通过对象来访问。而对静态成员变量,可以直接访问无需加
<类名>::
。
C++中类的静态成员变量和静态成员函数相关推荐
- C++静态成员变量和成员函数
静态成员变量和成员函数 简介 sizeof不将静态成员变量的大小计算在内 可以通过类名来访问静态成员 静态成员函数不能访问类的非静态成员 简介 static加在局部变量的前面改变其存储类型使之成为静态 ...
- c++中静态成员变量和静态成员函数
静态成员变量 在一个类中,若将一个成员变量声明为static,这种成员成为静态成员变量,与一般的数据成员不同,无论建立了多少个对象,都只想有一个静态数据的拷贝,静态成员变量,属于某个类,所有对象共享 ...
- 13.C++-静态成员变量、静态成员函数
首先回顾下成员变量 能通过对象名能够访问public成员变量 每个对象的成员变量都是专属的 成员变量不能在对象之间共享 再来讲讲类的静态成员变量 介绍 静态成员变量属于整个类所有 静态成员变量的生命期 ...
- C++面试题-面向对象-静态成员变量以及静态成员函数
C++面试题-面向对象-静态成员变量以及静态成员函数 问:在类中,静态数据成员和普通数据成员有何区别? 答: 普通数据成员属于类的对象,对象被创建后,普通数据成员才会分配内存.静态数据成员属于整个类, ...
- C++静态成员变量与静态成员函数
类的静态成员有两种:静态成员变量和静态成员函数,语法是在普通成员变量和成员函数前加static关键字. 0.定义 class CRect{ public:void show();//普通成员函数sta ...
- C++的静态成员变量和静态成员函数
C++的静态成员变量和静态成员函数 静态成员变量和静态成员函数算是C++面向对象编程中的一个重点和难点,这里的静态具体指什么呢?与普通的成员变量和成员函数相比,静态成员函数和静态成员变量是属于类的,而 ...
- 静态成员变量和静态成员函数
静态成员变量 一个类中可以有一个或多个静态成员变量,所有的对象都共享这些静态成员变量,都可以引用它. static 成员变量和普通 static 变量一样,都在内存分区中的全局数据区分配内存,到程序结 ...
- 类中的静态成员变量和静态成员函数
static静态成员函数 1.static 修饰成员变量 2.static修饰静态成员函数 引子: 静态成员函数: 注意: 3.const 修饰静态成员 静态成员案例 案例1:静态成员 统计类 实例化 ...
- qt 静态成员变量_Qt 静态成员函数的调用非静态成员变量,非静态成员函数
在多人开发的项目中,一些通用的工具类接口可以用静态成员函数.方便调用,并且不容易调用错误. 静态成员函数不传递this指针(不能->),不识别对象个体,所以经常用于对静态数据成员进行操作.不能操 ...
- c++ ——静态成员变量和静态成员函数
前言 c++ 静态成员变量用static 关键字来声明,是整个类的数据成员,其存储不占用某个具体对象的空间,其存储在静态存储区. c++ 静态成员函数用static 关键字来声明,用于处理静态成员变量 ...
最新文章
- Enterprise Architect 中文经典教程
- Delphi 7 在程序中直接执行SQL脚本文件
- 全卷积神经网路【U-net项目实战】Unet++
- 小程序input框letter-spacing失效,处理方法
- linux查找并删除文件
- 【Python】4000字归纳总结 Pandas+Sklearn 带你做数据预处理
- python找房源_python抓取贝壳房源信息
- boost::geometry::line_interpolate用法的测试程序
- Google分布式系统三驾马车: GFS,mapreduce,Bigtable
- html5自动填充父类框,html5和css3进阶(浮动)----02
- hdu Super Jumping
- 脉冲控制仪C语言程序,可编程脉冲控制仪
- CF985E Pencils and Boxes
- PDF 文件格式 基本结构
- java类为什么要序列化_Java 中的类为什么要实现序列化呢
- 证件照换底色的2个简单方法分享
- Ubuntu安装QQ、VM、Chrom软件
- 论文:Pyramid Vision Transformer
- 27 - Excel 的基本公式和重要函数(Excel入门下)
- 微信小程序指定盒子上滑置顶(记录)
热门文章
- python培训深圳-深圳python 培训班多少钱?[Python培训]
- python装饰器实例-Python装饰器简单用法实例小结
- python是什么怎么用-什么是python items函数?怎么使用它?
- linux下载哪个python版本-Linux下切换Python版本的几种方法
- python urllib.request 爬虫 数据处理-python爬虫 urllib模块url编码处理详解
- python入门教程2word-python操作word入门
- python自学路线-Python最佳学习路线
- lua学习笔记之闭包
- UVa719 Glass Bread(后缀数组解法)
- Java中的隐藏实现细节