On 9/19/07, Francisco Dibar <[EMAIL PROTECTED]> wrote:
> y fijate si tu mensaje de error es el mismo.
>
claro, lo saqué de mi proyecto y no me da error (como a Uds), pero
encontré la vuelta: TPoint está en un .h que se incluye más de una vez
en distintos .cpp
El código es el siguiente:
----------------8<----------------8<----------------8<----------------8<----------------8<----------------
#ifndef ATTRIBUTES_H_
#define ATTRIBUTES_H_
#include <vector>
#include <string>
#include <math.h>
//! Template para definir coordenadas de imagen
/**
* Es un template que define una coordenada en el plano 2D.
*/
template <class T>
class TPoint
{
public:
//! Constructor
TPoint(T X=0,T Y=0):x_(X),y_(Y){};
//! Operador de copia que acepta cualquier TPoint y castea al dato propio
template <class T2>
TPoint(const TPoint<T2> &Point)
{x_=static_cast<T>(Point.GetX());y_=static_cast<T>(Point.GetY());};
//! Acceso a X
T GetX()const{return x_;}
//! Acceso a Y
T GetY()const{return y_;}
//! Modificacion de X
void SetX(T x){x_=x;}
//! Modificacion de Y
void SetY(T y){y_=y;}
private:
T x_; ///< Coordenada X
T y_; ///< Coordenada Y
};
// Operador == para el TPoint
template <class T1,class T2>
bool operator==(TPoint<T1> PointA,TPoint<T2> PointB)
{
return ((PointA.GetX()==PointB.GetX()) &&
(PointA.GetY()==PointB.GetY()));
}
#define EPSILON 0.000000001
// Operador == para el TPoint especializado en RealPoint
template <>
bool operator==(TPoint<double> PointA,TPoint<double> PointB)
{
if ( fabs(PointA.GetX()-PointB.GetX())<EPSILON &&
fabs(PointA.GetY()-PointB.GetY())<EPSILON )
return true;
return false;
}
// Operador != para el TPoint
template <class T1,class T2>
bool operator!=(TPoint<T1> PointA,TPoint<T2> PointB)
{
return !(PointA==PointB);
}
----------------8<----------------8<----------------8<----------------8<----------------8<----------------
que anda para el caso de 1 .cpp que lo incluya, pero no para el caso
de 2 o más... acá es donde demuestro mi incompetencia... por qué pasa?
Saludos
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion