栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

static关键字,C++面试经常问到

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

static关键字,C++面试经常问到

static关键字

这个C++面试经常问到,看了网络上很多回答,整理了一下,觉得这个是最清晰直观的解释
不考虑类的情况
1. 隐藏。所有不加static的全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在的编译模块中使用

2.默认初始化为0,包括未初始化的全局静态变量与局部静态变量,都存在全局未初始化区,普通局部变量存储在栈区

3.静态变量在函数内定义,始终存在,且只进行一次初始化,具有记忆性,其作用范围与局部变量相同,函数退出后仍然存在,但不能使用,除非下一次函数调用
考虑类的情况

1.static成员变量:只与类关联,不与类的对象关联。定义时要分配空间,不能在类声明中初始化,必须在类定义体外部初始化,初始化时不需要标示为static;可以被非static成员函数任意访问。

2.static成员函数:由于只与类关联,不与类的对象关联,因此不具有this指针,无法访问类对象的非static成员变量和非static成员函数;不能被声明为const、虚函数和volatile(可以看一下三者实现细节和原理);可以被非static成员函数任意访问

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/528904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号