静态函数:它是一个成员函数,仅用于访问静态数据成员。它不能访问非静态数据成员,甚至不能调用非静态成员函数。即使该类的对象不存在,也可以调用它。它还用于在类的不同对象之间维护类成员函数的单个副本。
程序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 声明的。 |
它不允许再次修改变量或数据成员或函数。相反,它是在程序的整个生命周期内分配的。 | 它允许指定变量是否可修改。 |
它有助于调用使用类而不使用对象的函数。 | 它帮助我们避免修改对象。 |
该函数只能由静态数据成员和静态成员函数调用。 | 可以使用任何类型的对象调用该函数。 |
声明全局数据很有用,当程序驻留在内存中时应该更新这些数据,用于限制对函数的访问,在其他文件中重用相同的函数名称等。 | 它对于传递给函数的指针或引用很有用,用于避免对象的意外更改,可以由任何类型的对象调用等。 |
它是一个成员函数,通常允许使用类访问函数而不使用类的实例。 | 它是一个成员函数,一般在程序中声明为常量。 |
相关用法
- C++ static_cast用法及代码示例
- C++ stack::empty()用法及代码示例
- C++ stack::pop()用法及代码示例
- C++ stack::push()用法及代码示例
- C++ stack::size()用法及代码示例
- C++ stack::top()用法及代码示例
- C++ stack emplace()用法及代码示例
- C++ stack swap()用法及代码示例
- C++ stack top()用法及代码示例
- C++ stable_sort()用法及代码示例
- C++ stack push()、pop()用法及代码示例
- C++ strtod()用法及代码示例
- C++ strtol()用法及代码示例
- C++ strtoll()用法及代码示例
- C++ strtoull()用法及代码示例
- C++ strcpy()用法及代码示例
- C++ strncpy()用法及代码示例
- C++ strcat()用法及代码示例
- C++ strncat()用法及代码示例
- C++ strcmp()用法及代码示例
- C++ strncmp()用法及代码示例
- C++ strchr()用法及代码示例
- C++ strspn()用法及代码示例
- C++ strcspn()用法及代码示例
- C++ strpbrk()用法及代码示例
注:本文由纯净天空筛选整理自madhurihammad大神的英文原创作品 Difference between static and constant function in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。