C++ 类的静态成员变量及静态成员函数
ps:下面所说 成员=成员变量+成员函数;
作用##
由于对象与对象之间的成员变量是相互独立的。所以要想共用数据,则需要使用静态成员和静态函数。
空间分配##
静态成员是在程序编译时分配空间,而在程序结束时释放空间。
ps:一般的成员在对象建立时会分配空间,在对象撤销时会释放。
声明和定义##
静态成员的定义和声明要加个关键static。
初始化##
初始化静态成员变量要在类的外面进行。static关键字只能用于类定义体内部的声明中,初始化时不能标示为static。
初始化的格式如下:数据类型 类名::静态成员变量名 = 初值;
使用##
静态成员可以通过双冒号来调用,即<类名>::<静态成员名>。
也可以通过对象名来对静态成员变量进行引用<对象>.<静态成员名>。
类的静态成员变量必须先初始化再使用。
区别##
普通成员函数和静态成员函数的区别是:普通成员函数在参数传递时编译器会隐藏地传递一个this指针.通过this指针来确定调用类产生的哪个对象;但是静态成员函数没有this指针,不知道应该访问哪个对象中的数据,所以在程序中不可以用静态成员函数访问类中的普通变量.
因此,静态成员函数不能访问非静态成员,但可以访问静态成员。
非静态成员函数可以访问静态成员。
#include <iostream>
using namespace std;
class Point{
public:
Point()
{
n_count++;
}
~Point()
{
n_count++;
}
static void output()
{
cout << "n_count=" << n_count << endl;
}
private:
static int n_count;
};
//类外初始化静态成员变量时,不用带static关键字
int Point::n_count = 0;
void main()
{
Point pt;
pt.output();
}
C++ 类的静态成员变量及静态成员函数的更多相关文章
- C++类中的静态成员变量与静态成员函数
最近一直看c++相关的项目,但总是会被c++类中的静态成员变量与静态成员函数的理解感觉很是模糊,不明白为什么类中要是用静态成员变量.于是在网上搜集了一些资料,自己再稍微总结下. 静态成员的概念: 静态 ...
- C++ 类中的静态成员变量,静态成员函数
//类中的静态成员变量,静态成员函数 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; /* ...
- 13.C++-静态成员变量、静态成员函数
首先回顾下成员变量 能通过对象名能够访问public成员变量 每个对象的成员变量都是专属的 成员变量不能在对象之间共享 再来讲讲类的静态成员变量 介绍 静态成员变量属于整个类所有 静态成员变量的生命期 ...
- C++解析(14):静态成员变量与静态成员函数
0.目录 1.静态成员变量 2.静态成员函数 3.小结 1.静态成员变量 成员变量的回顾: 通过对象名能够访问public成员变量 每个对象的成员变量都是专属的 成员变量不能在对象之间共享 新的需求: ...
- c++学习笔记之类和对象(三、static静态成员变量和静态成员函数)
一.static静态成员变量 对象的内存中包含了成员变量,不同的对象占用不同的内存,这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响.是有时候我们希望在多个对象之间共享数据,对象 a 改变 ...
- static作用,静态成员变量和静态成员函数
static关键字有俩作用:(1).控制存储分配:(2).控制一个名字的可见性和连接. 随着C++名字空间的引入,我们有了更好的,更灵活的方法来控制一个大项目的名字增长. 在类的内部使用s ...
- Java中非静态成员变量、静态成员变量的初始化时机
转: Java中非静态成员变量.静态成员变量的初始化时机. 2018年05月22日 11:48:11 SilenceCarrot 阅读数 421 版权声明:技术就要分享才有意思,欢迎大家分享(注明 ...
- C++@类的静态成员变量和静态成员函数
参考: http://blog.csdn.net/morewindows/article/details/6721430 http://www.cnblogs.com/lzjsky/archive/2 ...
- C++类中的静态成员变量与静态成员函数的使用
代码: #include <iostream> #include <string> #include <cstdio> using namespace std; c ...
- C++类中的静态成员变量和静态成员函数的作用
数据成员可以分为静态变量.非静态变量两种. 静态成员:静态类中的成员加入static 修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配 ...
随机推荐
- HTML5 canvas getImageData() 方法
下面的代码通过 getImageData() 复制画布上指定矩形的像素数据,然后通过 putImageData() 将图像数据放回画布: var c=document.getElementById(& ...
- npm 常用命令 查看版本、安装、卸载
npm list // 查看本地已安装模块清单 npm list [packageName] // 查看本地已安装模块版本 npm info [packageName] //查看模块的详细信息 包括各 ...
- PAT A1129 Recommendation System (25 分)——set,结构体重载小于号
Recommendation system predicts the preference that a user would give to an item. Now you are asked t ...
- centos 7 安装python3.5.1
系统: [root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.2.1511 (Core) 内核: [root@local ...
- 【Luogu P1074】靶形数独
Luogu P1074 题意:给一个数独,问怎么填会使每个位置填的数乘以它的权值得到的和最大.其中每个位置的权值在题面中给出了. 思路:首先我们考虑搜索.由于我们不可能搜每个格子取太多的数,所以我们从 ...
- windows7系统下配置开发环境 python2.7+pyqt4+pycharm
python2.7 链接:https://pan.baidu.com/s/1lPI9AF9GCaakLXsMZLd5mQ 提取码:5xt6 pip 链接:https://pan.baidu.com/s ...
- Git使用—第一讲:初识版本控制工具
几乎所有出色的项目都不是一个人完成的,而是由一个团队共同合作开发完成的,这个时候多人之间的代码同步问题就显得异常重要了,因此版本控制工具也就应运而生了.常见的版本控制工具主要有SVN和Git,接下来要 ...
- 初学Python,对于开发工具不是很了解?一文带你选择适合你的开发工具
工欲善其事必先利其器!想要获取更多的开发工具安装包.安装教程,可以加群:725479218, 开发Python用什么工具好呢?其实刚学Python的话,使用IDLE就够了,虽然调试不是特别方便,但是对 ...
- Linux系列教程(六)——Linux常用命令之文件搜索命令
前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s 链接名 表示创建软链接,不加-s表示创建硬链接:还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令 ...
- C#路径的八种相关操作,判断字符串是否为路径等
原文:C#路径的八种相关操作,判断字符串是否为路径等 1.判定一个给定的C#路径是否有效,合法 通过Path.GetInvalidPathChars或Path.GetInvalidFileNameCh ...