Ing. en Electronica
Publicado por Omar (1 intervención) el 22/05/2010 03:06:39
Buen día, tengo el siguiente problema espero que me puedan ayudar.
Yo cree mi propia clase para manejar números complejos creando objetos llamada "cmpx", mi problema es a la hora de mezclar las cosas con la clase vector que ya viene incluida en todos los compiladores de C++. Lo que quiero hacer es declarar un vector como un objeto cmpx poder manejarlo como un vector de números complejos (sus partes real e imaginaria) y tener las ventajas de vector de no tener que mover todo el vector elemento por elemento sino simplemente por asignación (vector1=vector2). una parte de mi código es el siguiente:
--------ARCHIVO MAIN----------
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "cmpx.h"
std::vector<cmpx> Xn;
int main()
{
Xn[0].asigRe(2);
}
-----------ARCHIVO DONDE IMPLEMENTO LAS INTERFACES LA CLASE----------------------
void cmpx::asigRe(double r)
{
Real=r;
}
Cuando realizo debug me da SIGSEGV error al momento de hacer la asignación "Real=r;", leei por allí que para asignarle valores a un vector debería hacerlo de la siguiente forma:
Xn.push_back(2);
pero en ese caso no puedo asignar una parte real y otra imaginaria con mi clase cmpx¿que puedo hacer?
Yo cree mi propia clase para manejar números complejos creando objetos llamada "cmpx", mi problema es a la hora de mezclar las cosas con la clase vector que ya viene incluida en todos los compiladores de C++. Lo que quiero hacer es declarar un vector como un objeto cmpx poder manejarlo como un vector de números complejos (sus partes real e imaginaria) y tener las ventajas de vector de no tener que mover todo el vector elemento por elemento sino simplemente por asignación (vector1=vector2). una parte de mi código es el siguiente:
--------ARCHIVO MAIN----------
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "cmpx.h"
std::vector<cmpx> Xn;
int main()
{
Xn[0].asigRe(2);
}
-----------ARCHIVO DONDE IMPLEMENTO LAS INTERFACES LA CLASE----------------------
void cmpx::asigRe(double r)
{
Real=r;
}
Cuando realizo debug me da SIGSEGV error al momento de hacer la asignación "Real=r;", leei por allí que para asignarle valores a un vector debería hacerlo de la siguiente forma:
Xn.push_back(2);
pero en ese caso no puedo asignar una parte real y otra imaginaria con mi clase cmpx¿que puedo hacer?
Valora esta pregunta


0