C++中静态成员变量与静态成员函数
Hello,我是你们的好朋友一一,一一这次呢想跟大家分享的知识点是静态成员变量和静态成员函数。
So what is the 静态成员???
1.静态成员:
在类定义中,它的成员(包括成员变量和成员函数),这些成员可以用关键字static声明为静态的,称为静态成员。
1.1 静态成员变量:
在一个类中,若将一个成员变量声明为static,这种成员称为静态成员变量。静态成员变量,属于某个类,所有对象共享。
静态变量,是在编译阶段就分配空间,对象还没有创建时,就已经分配空间。
一一敲黑板啦!!!
- 静态成员变量必须在类中声明,在类外定义。
- 静态数据成员不属于某个对象,在为对象分配空间中不包括静态成员所占空间。
- 静态数据成员可以通过类名或者对象名来引用。
话不多说,直接上代码吧!! !
//静态成员变量:在一个类中,在一个成员变量前面加static,在类中声明,类外定义class Person
{
public:static int m;//类内声明};int Person::m = 10; //类外初始化void test()
{Person p1;p1.m = 20;cout << p1.m << endl; //通过对象访问cout << Person::m << endl; //通过类名访问
}
int main()
{test();return 0;
}
1.2 静态成员函数
在类定义中,前面有static说明的成员函数称为静态成员函数。静态成员函数使用方式和静态变量一样,同样在对象没有创建前,即可通过类名调用。静态成员函数主要为了访问静态变量,但是,不能访问普通成员变量。
静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,完成对静态数据成员的封装。
一一又来划重点啦!!!
- 静态成员函数只能访问静态变量,不能访问普通成员变量
- 静态成员函数的使用和静态成员变量一样
- 静态成员函数也有访问权限
- 普通成员函数可访问静态成员变量、也可以访问非经常成员变量
//静态成员函数
class Person
{
public:static void fun(){cout << "调用fun" << endl;}
};void test()
{Person p1;p1.fun(); //通过对象调用Person::fun();//通过类调用
}
int main()
{test();return 0;
}
//静态函数只能访问静态变量,不能访问非静态变量。class Person
{
public:static int m;int n;static void fun(){cout << "调用fun" << endl;m = 10; //静态函数只能访问静态变量//n = 10; 报错,静态函数不能访问非静态变量}
};
今天一一也是元气满满的一天呀!大家继续冲鸭!!!
欢迎大家批评指正!
end
C++中静态成员变量与静态成员函数相关推荐
- c++中静态成员变量和静态成员函数
静态成员变量 在一个类中,若将一个成员变量声明为static,这种成员成为静态成员变量,与一般的数据成员不同,无论建立了多少个对象,都只想有一个静态数据的拷贝,静态成员变量,属于某个类,所有对象共享 ...
- 类中的静态成员变量和静态成员函数
static静态成员函数 1.static 修饰成员变量 2.static修饰静态成员函数 引子: 静态成员函数: 注意: 3.const 修饰静态成员 静态成员案例 案例1:静态成员 统计类 实例化 ...
- C++静态成员变量和成员函数
静态成员变量和成员函数 简介 sizeof不将静态成员变量的大小计算在内 可以通过类名来访问静态成员 静态成员函数不能访问类的非静态成员 简介 static加在局部变量的前面改变其存储类型使之成为静态 ...
- C++面试题-面向对象-静态成员变量以及静态成员函数
C++面试题-面向对象-静态成员变量以及静态成员函数 问:在类中,静态数据成员和普通数据成员有何区别? 答: 普通数据成员属于类的对象,对象被创建后,普通数据成员才会分配内存.静态数据成员属于整个类, ...
- C++静态成员变量与静态成员函数
类的静态成员有两种:静态成员变量和静态成员函数,语法是在普通成员变量和成员函数前加static关键字. 0.定义 class CRect{ public:void show();//普通成员函数sta ...
- C++的静态成员变量和静态成员函数
C++的静态成员变量和静态成员函数 静态成员变量和静态成员函数算是C++面向对象编程中的一个重点和难点,这里的静态具体指什么呢?与普通的成员变量和成员函数相比,静态成员函数和静态成员变量是属于类的,而 ...
- 静态成员变量和静态成员函数
静态成员变量 一个类中可以有一个或多个静态成员变量,所有的对象都共享这些静态成员变量,都可以引用它. static 成员变量和普通 static 变量一样,都在内存分区中的全局数据区分配内存,到程序结 ...
- qt 静态成员变量_Qt 静态成员函数的调用非静态成员变量,非静态成员函数
在多人开发的项目中,一些通用的工具类接口可以用静态成员函数.方便调用,并且不容易调用错误. 静态成员函数不传递this指针(不能->),不识别对象个体,所以经常用于对静态数据成员进行操作.不能操 ...
- c++ ——静态成员变量和静态成员函数
前言 c++ 静态成员变量用static 关键字来声明,是整个类的数据成员,其存储不占用某个具体对象的空间,其存储在静态存储区. c++ 静态成员函数用static 关键字来声明,用于处理静态成员变量 ...
最新文章
- 题目1019:简单计算器
- 今天收拾了个电脑抽屉,发现原来我是个有钱人
- 五千字详解消息通知!
- java如何写对象配置文件,Java 读写Properties配置文件详解
- P4139-上帝与集合的正确用法【欧拉定理】
- Netty Java快速指南
- Android天气预报设计
- ubuntu18虚拟机添加网卡后,不自动启用dhcp
- List<?> list= new ArrayList<?>接口引用指向实现类的对象.
- c#通过OleDb连接sybase 15.5
- (day 42 - 字符翻转 ) 剑指 Offer 58 - II. 左旋转字符串
- python基础学习笔记(七)
- php rand js,js中的php rand函数
- Adobe全系列软件介绍
- 2009福布斯最具潜力中小企业榜
- 电脑上最好的5个azw3阅读器
- 字节 和 位 的关系
- Artificial Intelligence-人工神经网络
- Nolan的分形分布估计软件Stable使用教程
- 双非计算机保研北邮经验贴|纯干货(面向平民)
热门文章
- python 天猫精灵_GitHub - IsMrX/ioT: Python MQTT oauth2 接入到天猫精灵
- ubuntu的U盘读取问题
- 智能指标驱动的管理和决策平台 Kyligence Zen 全新上线,限量内测中
- 备份一哈如屎一样的sql
- 如何成为一个有思想的人
- Linux服务器杀马(转)
- 我在个人站点里添加了樱花飘落特效
- Mac如何通过soundflower内录电脑系统声音
- java jackson maven,jackson中objectMapper的使用
- 计算机毕业设计ssm网上水果商城s7436系统+程序+源码+lw+远程部署