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/05/10 14:55] alfred |
highlevel:c:poo [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 131: | Línea 131: | ||
| - | ==== Métodos estáticos ==== | + | |
| + | |||
| + | ==== 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''. \\ | 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. | Recuerda que las variables estáticas deberán ser inicializadas en entorno global. | ||
| Línea 148: | Línea 150: | ||
| }; | }; | ||
| int Telephon::nCalls = 0; | int Telephon::nCalls = 0; | ||
| - | |||
| int main() { | int main() { | ||
| Línea 372: | 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 465: | 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> | ||