當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ static和constant的區別用法及代碼示例


靜態函數它是一個成員函數,僅用於訪問靜態數據成員。它不能訪問非靜態數據成員,甚至不能調用非靜態成員函數。即使該類的對象不存在,也可以調用它。它還用於在類的不同對象之間維護類成員函數的單個副本。

程序1:

C++


// C++ program to illustrate the use 
// of static function 
#include "bits/stdc++.h" 
using namespace std; 
  
class A { 
public: 
    static void f() 
    { 
        cout << "GeeksforGeeks!"; 
    } 
}; 
  
// Driver Code 
int main() 
{ 
    A::f(); 
} 
輸出:
GeeksforGeeks!

常數函數它是一個函數,一般在程序中聲明為常量。它還保證不允許修改對象或調用任何非常量成員函數。它指定該函數是隻讀函數,並且不會修改調用它的對象。

程序2:

C++


// C++ program to illustrate the use 
// of const keyword 
  
#include <iostream> 
using namespace std; 
  
// Driver Code 
int main() 
{ 
    const double a = 1; 
  
    // Using the below line of code 
    // gives error 
    // a = 2.21; 
  
    cout << a << endl; 
  
    return 0; 
} 
輸出:
1

靜態函數和常量函數之間的表格差異:

Static Function

Constant Function

它是使用 static keyword 聲明的。 它是使用 const keyword 聲明的。
它不允許再次修改變量或數據成員或函數。相反,它是在程序的整個生命周期內分配的。 它允許指定變量是否可修改。
它有助於調用使用類而不使用對象的函數。 它幫助我們避免修改對象。
該函數隻能由靜態數據成員和靜態成員函數調用。 可以使用任何類型的對象調用該函數。
聲明全局數據很有用,當程序駐留在內存中時應該更新這些數據,用於限製對函數的訪問,在其他文件中重用相同的函數名稱等。 它對於傳遞給函數的指針或引用很有用,用於避免對象的意外更改,可以由任何類型的對象調用等。
它是一個成員函數,通常允許使用類訪問函數而不使用類的實例。 它是一個成員函數,一般在程序中聲明為常量。


相關用法


注:本文由純淨天空篩選整理自madhurihammad大神的英文原創作品 Difference between static and constant function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。