Diferencia entre función estática y constante en C++

Función estática : es una función miembro que se utiliza para acceder únicamente a miembros de datos estáticos . No puede acceder a miembros de datos no estáticos ni siquiera llamar a funciones de miembros no estáticos. Se puede llamar incluso si no existen objetos de la clase. También se usa para mantener una única copia de la función miembro de la clase en diferentes objetos de la clase.

Programa 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();
}
Producción:

GeeksforGeeks!

Función Constante : Es una función que generalmente se declara como constante en el programa. También garantiza que no permitirá modificar objetos ni llamar a ninguna función miembro que no sea constante. Especifica que la función es una función de solo lectura y no modifica el objeto para el que se llama.  

Programa 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;
}
Producción:

1

Diferencia tabular entre función estática y función constante:  

función estática

Función constante

Se declara usando la palabra clave estática .   Se declara usando la palabra clave const .  
No permite volver a modificar miembros de variables o datos o funciones. En su lugar, se asigna durante toda la vida del programa.   Permite especificar si una variable es modificable o no.
Ayuda a llamar funciones que usan clase sin usar objetos.   Nos ayuda a evitar modificar objetos.  
Esta función solo puede ser llamada por miembros de datos estáticos y funciones de miembros estáticos.   Esta función se puede llamar usando cualquier tipo de objeto. 
Es útil para declarar datos globales que deben actualizarse mientras el programa vive en la memoria, usarse para restringir el acceso a funciones, reutilizar el mismo nombre de función en otros archivos, etc.   Es útil con punteros o referencias pasadas a la función, se usa para evitar cambios accidentales en el objeto, puede ser llamado por cualquier tipo de objeto, etc. 
Es una función miembro que generalmente permite acceder a la función usando la clase sin usar una instancia de la clase.   Es una función miembro que generalmente se declara como constante en el programa. 

Publicación traducida automáticamente

Artículo escrito por madhurihammad y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *