深圳做网站公,wordpress 随机显示,网站上传程序流程,杭州app开发公司普悦科技文章目录1. mutable2.extern用法#xff1f;1. mutable
1) 如果需要在const成员方法中修改一个成员变量的值#xff0c;那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制; 常成员函数#xff0c;不允许修改成员变量的值#xff0c…
文章目录1. mutable2.extern用法1. mutable
1) 如果需要在const成员方法中修改一个成员变量的值那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制; 常成员函数不允许修改成员变量的值但是使用mutable修饰的成员变量可以在常成员函数中进行修改。 #includeiostream
using namespace std;class solution {
public:void print1() const {a 10;//不可以修改}void print2() const {b 10;//可以进行修改}
private:int a 0;mutable int b 0;
};int main() {return 0;
}2) 可以认为mutable的变量是类的辅助状态但是只是起到类的一些方面表述的功能修改他的内容我们可以认为对象的状态本身并没有改变的。实际上由于const_cast的存在这个概念很多时候用处不是很到了。
2.extern用法
1) extern修饰变量的声明
如果文件a.c需要引用b.c中变量int v就可以在a.c中声明extern int v然后就可以引用变量v。
2) extern修饰函数的声明
如果文件a.c需要引用b.c中的函数比如在b.c中原型是int fun(int mu)那么就可以在a.c中声明extern int funint mu然后就能使用fun来做任何事情。就像变量的声明一样extern int funint mu可以放在a.c中任何地方而不一定非要放在a.c的文件作用域的范围中。
3) extern修饰符可用于指示C或者C函数的调用规范。
比如在C中调用C库函数就需要在C程序中用extern “C”声明要引用的函数。这是给链接器用的告诉链接器在链接的时候用C函数规范来链接。主要原因是C和C程序编译完成后在目标代码中命名规则不同。