在C++中静态函数和常量函数的区别
静态函数: 是一种成员函数,用于访问仅静态数据成员。它不能访问非静态数据成员,甚至不能调用非静态成员函数。即使类的对象不存在,它也可以被调用。它还用于在类的不同对象之间维护类成员函数的单个副本。
程序1:
// 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++ 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
静态函数和常量函数之间的表格差异:
静态函数 | 常量函数 |
---|---|
使用静态关键字进行声明。 | 使用const关键字进行声明。 |
它不允许对变量、数据成员或函数进行修改。相反,它在程序的整个生存期内被分配。 | 它允许指定变量是否可修改。 |
它有助于在不使用对象的情况下调用使用类的函数。 | 它有助于避免修改对象。 |
只能由静态数据成员和静态成员函数调用此功能。 | 任何类型的对象都可以使用该函数。 |
它有助于声明应在程序存活期内更新的全局数据,用于限制对函数的访问、重用其他文件中相同的函数名称等。 | 它与传递给函数的指针或引用一起使用,用于避免意外更改对象,可以被任何类型的对象调用等。 |
它是一种成员函数,通常允许通过使用类来访问函数,而无需使用类的实例。 | 它是一种在程序中通常声明为常量的成员函数。 |