靜態(tài)函數(shù)在 c++++ 中被聲明為 static,具有以下特點(diǎn):僅在聲明函數(shù)的文件內(nèi)可見,不屬于任何類,在程序啟動(dòng)時(shí)分配內(nèi)存,不可訪問非靜態(tài)成員。例如,用靜態(tài)函數(shù)計(jì)算圓形面積的代碼片段可以有效地計(jì)算出給定半徑的圓形面積。
C++ 中的靜態(tài)函數(shù)
靜態(tài)函數(shù)聲明
C++ 中的函數(shù)可以聲明為靜態(tài)函數(shù),只需在函數(shù)前加上 static
關(guān)鍵字,語法如下:
static void function_name();
登錄后復(fù)制
靜態(tài)函數(shù)的特點(diǎn)
靜態(tài)函數(shù)具有以下特點(diǎn):
作用域: 僅在函數(shù)所在的文件內(nèi)可見。綁定到類: 不屬于任何類或?qū)ο蟆?strong>內(nèi)存管理: 保存于靜態(tài)區(qū),僅在程序啟動(dòng)時(shí)分配一次內(nèi)存,不會(huì)隨著函數(shù)調(diào)用而創(chuàng)建或銷毀。不可訪問非靜態(tài)成員: 由于靜態(tài)函數(shù)不屬于任何類,因此無法訪問非靜態(tài)成員(包括數(shù)據(jù)成員和非靜態(tài)方法)。
實(shí)戰(zhàn)案例
考慮以下使用靜態(tài)函數(shù)計(jì)算圓形面積的代碼示例:
#include <iostream> #include <cmath> // 靜態(tài)函數(shù)計(jì)算圓形的面積 static double calculate_area(double radius) { return M_PI * pow(radius, 2); } int main() { double radius; std::cout << "輸入圓形半徑:"; std::cin >> radius; // 調(diào)用靜態(tài)函數(shù) double area = calculate_area(radius); std::cout << "圓形的面積為:" << area << " 平方單位" << std::endl; return 0; }
登錄后復(fù)制
輸出:
輸入圓形半徑:5 圓形的面積為:78.5398 平方單位
登錄后復(fù)制