欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

C++学习—— mutable和 extern

发布时间:2024/7/19 c/c++ 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C++学习—— mutable和 extern 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 1. mutable
    • 2.extern用法?

1. mutable

1) 如果需要在const成员方法中修改一个成员变量的值,那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制;

常成员函数,不允许修改成员变量的值,但是使用mutable修饰的成员变量,可以在常成员函数中进行修改。

#include<iostream> 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 fun(int mu),然后就能使用fun来做任何事情。就像变量的声明一样,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的文件作用域的范围中。

3) extern修饰符可用于指示C或者C++函数的调用规范。

比如在C++中调用C库函数,就需要在C++程序中用extern “C”声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同。

总结

以上是生活随笔为你收集整理的C++学习—— mutable和 extern的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。