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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络——基本介绍
- 下一篇: 数据库基础知识——DDL语言