const与static在C与C++语言下的意义

4 篇文章 0 订阅

一、const

在C++中:

1、常对象:创建对象时添加const关键字,这个对象就不可以再修改,就有了常属性,就意味着整个对象所有变量不能更改

2、常对象不能调用普通函数,调用成员函数就相当于把对象的this指针给了他,就有被修改的风险

3、常对象只能调用常函数(函数体前加关键字叫常函数),普通对象也能调用常函数,常函数就相当于对this指针添加了const属性

4、常函数与普通函数可以构成重载,不会冲突

5、如果有成员确实需要修改,他又被const修饰,可以对成员添加一个关键字mutable,这样即使是常对象调用了常函数依然可以修改成员

C:

const :常量,为变量保存添加一种保护,保护变量不能被显示修改,提高程序的安全性,当程序没必要修改参数值时,应该加const属性;
    const 可以定义常量,const修改初始化过的全局变量就是常量;

二、static

C++:静态成员与静态成员函数

1、类成员被static修饰,就会存储在bss段(此段是由编译器存放的而且大小是固定的),在程序中动态的创建对象时它的静态成员就无法创建,所有的类对象就共享一个静态成员

2、静态成员只能在类中声明不能在类中定义(必须在类外定义)  类型 类名::静态成员名

3、静态成员就是声明在类中的全局变量,在任何位置都可以使用  类名::静态成员名 进行访问

4、静态成员函数:类中的成员函数被static修饰后就变成静态成员函数,所有成员共享一份静态成员函数

5、静态成员函数不会传递this指针,不通过对象也能调用静态成员函数 类名::静态成员函数(参数)

C:

static
      修饰全局变量时,作用域会从整个程序变为他所在的.c文件内;
      1、静态局部,块:
        存储位置会由栈改为静态段;生命周期会改为从定义开始到程序结束;但是使用范围不变;默认值为0;只能初始化一次;

静态函数:
      static int func(int num);
      static会把外部函数变为内存函数,只能在他所在的.c文件内;

static修饰全局变量和函数的好处,可以防治与其他函数,变量重名冲突

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值