Algunos datos interesantes sobre las funciones miembro estáticas en C++

1) las funciones miembro estáticas no tienen este puntero
Por ejemplo, el siguiente programa falla en la compilación con el error «`this’ no está disponible para las funciones de miembros estáticos»

CPP

#include<iostream>
class Test {     
   static Test * fun() {
     return this; // compiler error
   }
};
  
int main()
{
   getchar();
   return 0;
}

2) Una función miembro estática no puede ser virtual (Ver este G-Fact)
3) Las declaraciones de función miembro con el mismo nombre y el nombre lista-tipo-parámetro no pueden sobrecargarse si alguna de ellas es una declaración de función miembro estática. 
Por ejemplo, el siguiente programa falla en la compilación con el error » ‘void Test::fun()’ y `static void Test::fun()’ no se pueden sobrecargar «

CPP

#include<iostream>
class Test {
   static void fun() {}
   void fun() {} // compiler error
};
  
int main()
{
   getchar();
   return 0;
}

4) Una función miembro estática no puede declararse const , volatile o const volatile
Por ejemplo, el siguiente programa falla en la compilación con el error «función de miembro estático ‘static void Test::fun()’ no puede tener el calificador de método ‘const'» 

CPP

#include<iostream>
class Test {     
   static void fun() const { // compiler error
     return;
   }
};
  
int main()
{
   getchar();
   return 0;
}

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Referencias: 
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *