在C++中,static關鍵字具有不同的作用,取決于它被應用的上下文。
在全局上下文中,static關鍵字用于限制變量或函數的作用域。當static關鍵字用于全局變量時,它將變量的作用域限制在當前源文件中,其他文件無法訪問該變量。當static關鍵字用于全局函數時,它將函數的作用域限制在當前源文件中,其他文件無法直接調用該函數。
在類的上下文中,static關鍵字用于表示類的靜態成員。靜態成員被所有類的對象所共享,而不是每個對象擁有自己的副本。靜態成員可以是靜態變量或靜態函數。靜態變量在內存中只有一個副本,它被所有對象所共享。靜態函數可以直接通過類名調用,而不需要創建對象實例。
在函數的上下文中,static關鍵字用于指示函數的生命周期與程序的生命周期相同。一旦函數被聲明為靜態,它將在程序的整個執行過程中存在,而不是在每次函數被調用時創建和銷毀。靜態函數只能訪問靜態變量。
總結起來,C++中的static關鍵字用于限制變量、函數或類成員的作用域,表示靜態成員以及指示函數的生命周期。