Preguntas etiquetadas con oop

172
Comprobación nula en un bucle for mejorado

¿Cuál es la mejor manera de protegerse contra nulo en un bucle for en Java? Esto parece feo: if (someList != null) { for (Object object : someList) { // do whatever } } O if (someList == null) { return; // Or throw ex } for (Object object : someList) { // do whatever } Puede que no...

170
Cuándo usar clases estáticas vs instanciadas

PHP es mi primer lenguaje de programación. No puedo entender cuándo usar clases estáticas frente a objetos instanciados. Me doy cuenta de que puedes duplicar y clonar objetos. Sin embargo, en todo mi tiempo usando php, cualquier objeto o función siempre terminaba como un solo valor de retorno...

170
Separar el código de clase en un encabezado y archivo cpp

Estoy confundido sobre cómo separar el código de implementación y declaraciones de una clase simple en un nuevo encabezado y archivo cpp. Por ejemplo, ¿cómo separaría el código para la siguiente clase? class A2DD { private: int gx; int gy; public: A2DD(int x,int y) { gx = x; gy = y; }...

165
¿Se utiliza realmente el idioma de pImpl en la práctica?

Estoy leyendo el libro "Excepcional C ++" de Herb Sutter, y en ese libro he aprendido sobre el lenguaje de ejemplo. Básicamente, la idea es crear una estructura para los privateobjetos de a classy asignarlos dinámicamente para disminuir el tiempo de compilación (y también ocultar las...

164
Nunca antes visto C ++ para loop

Estaba convirtiendo un algoritmo de C ++ a C #. Encontré esto para el bucle: for (u = b.size(), v = b.back(); u--; v = p[v]) b[u] = v; No da ningún error en C ++, pero sí en C # (no puede convertir int a bool). Realmente no puedo entender esto para el bucle, ¿dónde está la condición? ¿Alguien...

157
Orientación a objetos en C

¿Qué sería un conjunto de ingeniosos hacks de preprocesador (compatible con ANSI C89 / ISO C90) que permiten algún tipo de orientación de objeto feo (pero utilizable) en C? Estoy familiarizado con algunos lenguajes diferentes orientados a objetos, así que no responda con respuestas como "¡Aprenda...