Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
highlevel:c:poo [2008/04/26 17:11] 127.0.0.1 editor externo |
highlevel:c:poo [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 130: | Línea 130: | ||
| - | ==== Métodos estáticos ==== | + | |
| - | En nuestras clases podemos crear métodos estáticos. Para usar estos no será necesario crear un objeto de dicha clase. Para usarlos haremos: ''NombreClase::NombreMetodo''. \\ Ejemplo... | + | |
| + | |||
| + | ==== Métodos y variables estáticas ==== | ||
| + | En nuestras clases podemos crear métodos estáticos. Para usar estos no será necesario crear un objeto de dicha clase. Para usarlos haremos: ''NombreClase::NombreMetodo''. \\ | ||
| + | Recuerda que las variables estáticas deberán ser inicializadas en entorno global. | ||
| + | \\ Ejemplo... | ||
| <code cpp> | <code cpp> | ||
| - | class A | + | class Telephon { |
| - | { | + | private: |
| - | public: | + | static int nCalls; |
| - | static void B (string hi) | + | public: |
| - | { | + | static void call () { |
| - | cout << hi.c_str(); | + | Telephon::nCalls++; |
| - | } | + | |
| - | }; | + | |
| - | void main () | + | |
| - | { | + | |
| - | A::B("hiii!"); | + | |
| } | } | ||
| + | static int getNCalls () { | ||
| + | return Telephon::nCalls; | ||
| + | } | ||
| + | }; | ||
| + | int Telephon::nCalls = 0; | ||
| + | |||
| + | int main() { | ||
| + | Telephon::call(); | ||
| + | Telephon::call(); | ||
| + | cout << Telephon::getNCalls(); | ||
| + | return 0; | ||
| + | } | ||
| </code> | </code> | ||
| Línea 361: | Línea 373: | ||
| </code> | </code> | ||
| Ten cuidado, aquí el objeto b no es un B, sino un B*, es decir, devuelve false. | Ten cuidado, aquí el objeto b no es un B, sino un B*, es decir, devuelve false. | ||
| + | |||
| + | |||
| Línea 454: | Línea 468: | ||
| Para declarar el método anterior como amigo haríamos: | Para declarar el método anterior como amigo haríamos: | ||
| <code cpp>friend void Incremena<>(Plantilla<T>);</code> | <code cpp>friend void Incremena<>(Plantilla<T>);</code> | ||
| + | Otro ejemplo: | ||
| + | <code cpp> | ||
| + | template<int I> | ||
| + | class A { | ||
| + | public: | ||
| + | void func () { | ||
| + | printf("%d", I); | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | void main () { | ||
| + | A<3> a; | ||
| + | a.func(); | ||
| + | system("pause"); | ||
| + | } | ||
| + | </code> | ||