keyword static
1. 不能通过类名来调用类的非静态成员函数
2. 类的对象可以使用静态成员函数和非静态成员函数
3. 静态成员函数中不能引用非静态成员
因为静态成员函数属于整个类, 在类的实例化对象之前就已经分配了空间, 而类的非静态成员必须在类实例化对象后才有内存空间
4. 类的非静态成员函数可以调用静态成员函数, 但反之不行
5. 类的静态成员函数必须先初始化再使用
6. 重要特点
隐藏: 当我们同时编译多个文件时, 所有未加 static 前缀的全局变量和函数都具有全局可见性
7. static 的第二个作用是保持变量的持久化
存储在静态数据区的变量会在程序刚开始运行时就完成初始化, 也是唯一一次初始化. 共有两种变量存储在静态存储区, 全局变量和 static 变量, 只不过和全局变量比起来, static 可以控制变量的可见范围, 说到底, static 还是用来隐藏的
8. static 的第三个作用默认初始化为 0, 其实全局变量也具有这一个属性, 因为全局变量也存储在静态数据区
在静态数据区, 内存中的所有字节默认都是 0x00, 某些时候, 这一特点可以减少程序员的工作量
keyword static的更多相关文章
- Java Keyword Static 学习记录
Static Java编程思想:一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起. 特点:随着类的加载而加载,随着类的销毁而销毁. 作用:可以修饰成员变量,代码块,方法 ...
- C++ essentials 之 static 关键字
extraction from The C++ Programming Language, 4th. edition, Bjarne Stroustrup If no initializer is s ...
- iOS static
获得20条news 先实现,再提取到business 层. The static Keyword You can have a local variable retain its value thro ...
- Core Java Volume I — 4.4. Static Fields and Methods
4.4. Static Fields and MethodsIn all sample programs that you have seen, the main method is tagged w ...
- static local variable
Putting the keyword static in front of a local variable declaration creates a special type of variab ...
- static作用
C程序一直由下列部分组成: 1)正文段——CPU运行的机器指令部分:一个程序仅仅有一个副本:仅仅读,防止程序因为意外事故而改动自身指令: 2)初始化数据段(数据段)——在程序中全部 ...
- java基础-java语言中的keyword总结
keyword 1.定义:被java语言赋于了特殊含义的单词 2.用于定义基本数据类型的keyword: class interface float int long double byte ...
- "Cannot declare member function ...to have static linkage"错误
英文解释: if you declare a method to be static in your .cc file. The reason is that static means somethi ...
- Static Fields and Methods
If you define a field as static, then there is only one such field per class. In contrast, each obje ...
随机推荐
- jquery api 常见api 效果操作例子
addClass_removeClass_toggleClass_hasClass.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 ...
- PLSQL Split分割字符串
系统自带的split,使用起来方便,但是如果字符串太长,可能会出现异常,这里,我自己写了一个也是该名字,放在自己的包中,引用的时候带包名就好了. --系统自带的函数 /*CURSOR cur_temp ...
- Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
转载自:http://www.open-open.com/lib/view/open1436360508098.html
- public static void main(String args[])什么意思?
public static void main(String[] args) 这绝对不是凭空想出来的,也不是没有道理的死规定,而是java程序执行的需要. jvm在试图运行一个类之前,先检查该类是否包 ...
- 安卓入门 使用android创建一个项目 从启动activity中响应按钮事件 启动另一个activity 并传递参数
启动android studio创建一个新项目 public void sendMessage(View view){ Intent intent=new Intent(this,DispalyMes ...
- 容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例
一.容器适配器 stack queue priority_queue stack.queue.priority_queue 都不支持任一种迭代器,它们都是容器适配器类型,stack是用vector/d ...
- DHCP(动态主机配置协议)工作流程
一.DHCP的作用 我们先来看一下什么是DHCP,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)它可以为客户机自动分配IP地址.子网掩码以及缺省网 ...
- Android异步任务处理框架AsyncTask源代码分析
[转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 引言 在平时项目开发中难免会遇到异步耗时的任务(比方最常见的网络请求).遇到这样的问题.我 ...
- Python 爬虫实例(6)—— 爬取蚂蚁免费代理
数据库表sql语句: CREATE TABLE `free_ip` ( `free_ip_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `ip` ...
- unity, 替换shader渲染(Rendering with Replaced Shaders)
实现特效,尤其是一些后处理特效,经常需要将各物体的shader替换为另一套shader进行渲染到纹理,再后再进行合成或以某种叠加方式叠加到最后的画面上去. 再复杂一点儿的,可能不同的物体所用的替换sh ...