¿Para qué están diseñadas las variables estáticas? ¿Cuál es la diferencia entre static int e int?¿Qué son las variables estáticas?
Respuesta
La palabra clave static
tiene cuatro usos separados, solamente dos de los cuales están estrechamente relacionados:
- estática en ámbito global y espacio de nombres (aplicado a ambas variables y funciones) medios de enlace interno
- esto es reemplazado por unnamed namespaces y no está relacionado con el resto
- en particular, otros tienden a implicar algún tipo de exclusividad, pero el enlace interno significa opuesto a: puede tener muchos objetos con el mismo nombre, siempre y cuando cada uno tiene vinculación interna y que sólo tiene uno por unidad de traducción
- miembros de datos estáticos son "compartidas" entre todas las instancias de la clase
- es más como si estuvieran independiente de cualquier instancia de clase
- esto a veces se agrupan con los métodos estáticos
- métodos estáticos no "operan" en una instancia actual
- no este puntero; puede llamar sin una instancia
- variables locales estáticas (en funciones) persisten en todo el ámbito de cada llamada a la función
Ambos miembros de datos estáticos y variables locales estáticas pueden convertirse en estado global oculta, y se debe utilizar cuidadosamente.
¿Ahora cuáles dos están estrechamente relacionados? No son los dos miembros de la clase — la advertencia sobre el estado global lo delata. Puede considerar los miembros de datos estáticos como variables locales estáticas, donde las funciones a las que pertenecen son todos métodos de la clase, en lugar de una única función.
Encontré muchos related questions, pero, sorprendentemente, no hay duplicados.
Se puede hacer referencia a un miembro estático sin una instancia.
Consulte la sección "Miembros estático" aquí: http://www.cplusplus.com/doc/tutorial/classes2/
La pregunta, sin embargo, era acerca de las variables estáticas, no de los miembros. –
No está claro si el OP estaba haciendo esa distinción, a pesar de que 'término variable' era el término utilizado. –
@Michael: lo que podría significar una variable miembro estática (depende de qué se trata la pregunta original y no está 100% clara). –
Las variables estáticas se inicializan en el segmento de datos (en x86, modificar según sea apropiado para otras arquitecturas) en lugar de en la pila. Persisten durante la vida del programa en lugar de evaporarse una vez que salen del alcance.
No está claro, pero parece que estás mezclando dos significados diferentes de estática en una definición. –
- 1. ASP.NET C# Las variables estáticas son globales?
- 2. ¿Las variables locales en métodos estáticos también son estáticas?
- 3. ¿Las variables locales en Fortran 77 son estáticas o dinámicas?
- 4. ¿Qué son las variables puras?
- 5. Variables estáticas en las sesiones
- 6. Las variables estáticas en C y C++
- 7. Las variables estáticas en una función anónima
- 8. ¿Por qué las variables estáticas se autoinicializan a cero?
- 9. ¿Deben reemplazarse las variables estáticas por enumeraciones?
- 10. variables estáticas en Objective-C: ¿qué hacen?
- 11. ¿Por qué las propiedades de dependencia son "estáticas"?
- 12. ¿Por qué Python no tiene variables estáticas?
- 13. C# Las variables estáticas - alcance y persistencia
- 14. ¿Dónde debo declarar las variables estáticas?
- 15. Son variables estáticas serializadas en el proceso de serialización
- 16. Vinculación de varias variables estáticas/estáticas
- 17. Variables estáticas en C++
- 18. variables estáticas en c
- 19. Variables estáticas en R
- 20. variables estáticas en ruby
- 21. Variables miembro estáticas protegidas
- 22. Variables estáticas en WCF
- 23. Cómo inicializar variables estáticas
- 24. ¿Las variables de instancia son las nuevas variables globales?
- 25. ¿Cuáles son las reglas que dictan la herencia de variables estáticas en Java?
- 26. C++ liberando variables estáticas
- 27. inicialización de variables estáticas
- 28. Variables estáticas en C#
- 29. PHP vs ASP.NET variables estáticas
- 30. DotNet: variables estáticas en DLL
Posible duplicado: http://stackoverflow.com/questions/1706675/file-scope-and-static-floats – sellibitze