Visual C++ Problema:struct con *MyClase no puedo crear Array

Me explico
Tengo una clase y he creado el siguiente struct en el .h

typedef struct Arte
{
CString cNombreGrafico;
CBDTotales* cDB; //puntero a una clase q tengo mia
}arte ;
class A
{
...........
}
**---------------------------------------------------------**
ahora en el .cpp
#include "DBtotales.h"
class A
{
en una funcion me creo:

CDBTotales* BDtotales; //sin problemas

arte a; //Me creo una variable del tipo Struct de arriba

a.cNombreGrafico="Hola"; //sin problemas

//ESTE ES EL PROBLEMA. AL HACER esta asignación me da el error:
error C2440: '=' : no se puede realizar la conversión de 'CDBTotales *' a 'CBDTotales *'
a.cDB = BDtotales;


a.cDB es del mismo tipo que BDtotales...que es lo que me falla??

}
Has puesto en la declaración de la estructura que el puntero "cDB" es de tipo CBDTotales, y en el puntero que declaras en la función es de tipo CDBTotales.
Si. En la estructura es un puntero a CDBTotales y en la función tambien, pero no hace la igualdad...no sé que puede ser.
capel escribió:Si. En la estructura es un puntero a CDBTotales y en la función tambien, pero no hace la igualdad...no sé que puede ser.


¿Has leído con atención el mensaje anterior?En el código que proporcionas haces lo siguiente:

CDBTotales a;
CBDTotales b;

a=b;

Donde cada estructura pudiera ser cualquier cosa. Si estás convencido de que CDBTotales y CBDTotales es el mismo tipo de dato siempre puedes hacer un cast. En el caso anterior:

a=(CDBTotales) b;

En tu caso: (CDBTotales *)
coño!! kek_500 y Mithrandir0x, joder, teneis toda la razón, no me había dado cuenta y yo siempre veia CDBTotales

Muxas gracias..cago en to..!!y ahí atascao 2 o 3 días sin ganas de abrir el proyecto!!!
4 respuestas