Foros - Stratos

Programadores => Código de la Semana => Mensaje iniciado por: ethernet en 12 de Enero de 2003, 04:17:00 PM

Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: ethernet en 12 de Enero de 2003, 04:17:00 PM




/*



CMinMax.h



*/





#pragma once



#include "Types.h"





template <class T> class CMinMax

{

private:



//

//members

//

T m_Min;

T m_Max;

 





public:



//

//life

//

CMinMax()

{

 Clear ();

}

CMinMax (T tMin, T tMax)

{

 m_Min = tMin;

 m_Max = tMax;

}

~CMinMax()

{

}







//

//operators

//

inline bool operator == (const CMinMax <T> &minmax)

{

 return (m_Min == minmax.m_Min && m_Max == minmax.m_Max) ?



true : false;

}

inline bool operator != (const CMinMax <T> &minmax)

{

 return (*this == minmax) ? false : true;

}



//

//operations

//

inline CMinMax <T>& operator = (const CMinMax <T> &minmax)

{

 m_Min = minmax.m_Min;

 m_Max = minmax.m_Max;

 return *this;

}



inline void Clear (void) { m_Min = T(); m_Max = T(); }



inline void SetMinMax (const T min, const T max) { m_Max = max;



m_Min = min; }



inline T GetRange(void) { return(T)(abs((int)(m_Max-m_Min))); }



inline T GetRandom (void)

{

 return (T)(m_Max-m_Min) > 0 ? rand ()%(int)(m_Max-m_Min) +



m_Min : rand ()%(int)(1) + m_Min;

}



};









Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: ethernet en 12 de Enero de 2003, 04:21:12 PM
Supongo q esta clase tiene snetido para tipos de datos basicos como float, int , char y algunos como vector, pero para mi clase CSocket no creo q tenga mucha utilidad.

Me gusta mucho tu organizacion de codigo, clara y limpia :DDD


saludos
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: Mars Attacks en 12 de Enero de 2003, 06:29:52 PM
                                ¿Qué es #pragma once?                                
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: NeLo en 12 de Enero de 2003, 10:29:23 PM
                                #pragma once

es para indicar al compilador que incluya el header sólo una vez.

Saludos.                                
Título: #pragma once
Publicado por: ZeruGiran en 16 de Enero de 2003, 05:53:18 AM
                                No es standar, hay quien frefiere seguir usando

#ifndef __maxmin__
#define __maxmin__

// Codigo

#endif                                
Título: ...
Publicado por: Grugnorr en 16 de Enero de 2003, 05:44:43 PM
                                En VisualC++ #pragma once acelera el tiempo de compilación de un proyecto.

#pragma once hace que no se abra ese fichero si ya ha sido añadido a la compilación.... los #def hacen que se abra y no incluya nada, y se cierre. En un proyecto muy grande(o con muchas dependencias físicas) puede reducir mucho el tiempo de compilación

PD: Eso es lo que recuerdo de no sé donde, algo será del Lakos(Large-Scale C++ Software Design) y el resto de leer por ahí                                
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: ethernet en 16 de Enero de 2003, 05:52:05 PM
Independientemente de las ayudas del compilador en effective c++ explica como reducir las dependencias entre archivos y q la compilacion/recompilacion sea mas eficiente.

saludos
Título: ...
Publicado por: Grugnorr en 17 de Enero de 2003, 01:06:39 AM
                                Ya, y en el Lakos.

Pero partiendo de que hayas cuidado las dependencias físicas, en Visual C++ con el #pragma once  en un programa grande te compilará más rápido. Se puede meter en un macro ....

#define HEADER_BEGIN(HeaderName) { #ifdef_VISUALC++ #pragma / once #else #ifndef_HeaderName##_H  #define _HeaderName##_H}

#define HEADER_END(HeaderName){#ifndef _VISUALC++ #endif}

Habría que ver que código distingue cada compilador, pero algo así que sale de mi cabeza justo antes de irme a la cama.

Todo ésto se puede automatizar fácilmente, en el Visual se podrá. En herramientas CASE tipo Together o Rational Rose es muy cómodo                                
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: ethernet en 17 de Enero de 2003, 07:04:32 PM
Umh podrias decir algo mas de ese tipo de herramientas? he oido hablar de ellas pero no se para q valen realmente xD

saludos
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: Daventry en 17 de Enero de 2003, 07:57:24 PM
                               
CitarUmh podrias decir algo mas de ese tipo de herramientas? he oido hablar de ellas pero no se para q valen realmente xD

Sirven para que te toquen las narices en las prácticas de Ingeniería del Software...

Bye                                
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: rrc2soft en 17 de Enero de 2003, 09:01:03 PM
                                Muy buena esa definicion, Daventry, muy buena  :ojo:                                
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: ethernet en 18 de Enero de 2003, 12:39:01 PM
entonces no sirve para nada no? XDD
Título: Clase para abstraer Maximos/Minimos - Corday
Publicado por: synchrnzr en 18 de Enero de 2003, 01:24:36 PM
                                Sí que sirven, pero el Rational cuesta todo lo que pueda cobrar durante mi vida hasta que me jubile. Bueno... tal vez no tanto, pero más o menos... :I

sync