C++ 中 static 与 const 的用法及对比】的更多相关文章

在这个学习过程中我对 static 及 const 的使用时常会混淆,因此整理,加深记忆 一.类的静态成员 如果某个属性为整个类所共有,不属于任何一个具体对象,则采用 static 关键字来声明静态成员. • 由于静态数据成员不属于任何一个对象,因此可以通过类名对它进行访问.   使用方法----- "类名::标识符“   (注意:static 数据成员的初始化要在类定义之外在加以定义) 1.静态数据成员 #include<iostream> using namespace std;…
众所周知,在c++中,static和const的使用方法是难点,也是重点,值得我们随时温习,所谓温故而知新是也. 下面我们首先说一说static. 1.static的作用 static变量的作用,主要可以归纳为以下几点 a.可以隐藏,如果在函数体外声明成员变量,非static的成员变量,在A.cpp中声明:int a;那么这样其他源文件比如B.cpp是可以访问到A.cpp中的a的.这样极容易混淆,因为我们可能需要在B.cpp中声明int a;而且也是对数据的一种保护,使A更安全. 而如果在A.c…
在类中声明变量/常量时,经常会用到static.const关键字.对于该变/常量的初始化问题,网上有许多相关文章,但是大多不够完善,或者存在错误.经过实际验证,总结如下: (注明:测试编译平台为VS2015和2010) class TestClass { public: TestClass()//:a(16) { cout << "TestClass Constructor ." << endl; } ~TestClass() { cout << &…
(1) static static要害字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护.类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数.类的静态方法能访问类的静态的属性.另外说明的是,static的成员,必须使用self来访问,使用this会出错.用::方式调用一个非静态方法会导致一个E_STRICT级别的错误…
static关键字至少有下列几个作用: 函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值: 在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问: 在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内: 在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝: 在类中的static成员函数属于整个类所拥有,这个函数不接收thi…
使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类.字段.方法.属性.运算符.事件和构造函数,但不能用于索引器.析构函数或类以外的类型 静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量. 特点: A.该变量在全局数据区分配内存. B.初始化:如果不显式初始化,那么将被隐式初始化为0. 静态局部变量 定义:在局部变量前加上static关键字时,就定义了静态局部变量. 特点: A.该变量在全局数据区分配内存…
一.static成员 (1)static数据成员 static数据成员的创建是为了对象之间的共享和沟通,具有以下特点: 1.1 static数据成员属于类,只占一份空间(不像普通数据成员每个对象中都有一份数据),其空间在对象之外,但可以被各个同类对象共享. 1.2 static数据成员不能通过构造函数初始化(这是因为static数据成员只有一份数据,而每实例化一个对象就会执行一次构造函数),只能在类外初始化(编译器默认赋其为0). 一般形式为:数据类型 类名::静态数据成员 = 初值;//不加s…
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的static成员变量和成员方法本质是…
<OOC>笔记(1)——C语言const.static和extern的用法 C语言中const关键字用法不少,我只喜欢两种用法.一是用于修饰函数形参,二是用于修饰全局变量和局部变量. 用const修饰的函数形参 直接修饰 一个形如 int Minus(const int a, const int b, int testCase); 的函数,const的意义是什么呢? 答:参数a被const修饰,说明在Minus函数内,编译器不允许a被别的变量(例如x)赋值(修改).参数b同理. 如果你写了a…
const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结const的用法. 1.const位置 const位置较为灵活,一般来说,除了修饰一个类的成员函数外,const不会出现先一条语句的最后.示例如下: #include <iostream> using namespace std; int main(int argc,char* argv[]) {…