Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2011, 10:27
xonil
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 19 años
Puntos: 1
acceso a miembros privados

Hola a todos, tengo un pequeño problema y que mejor lugar para exponerlo que este.

bueno, mi problema es que tengo declarada una clase llamada 'complejo', con dos atributos privados, 'real' e 'imaginario', con sus constructores y metodos, después tengo instanciado una plantilla de tipo 'vector', declarado un 'iterador' y en el main creo 3 objetos de la clase complejo, con unos valores que les he pasado en el constructor, despues los añado en el vector, miro el tamaño del vector y me dice que tengo 3 elementos, pero cuando hago un for desde el inicio del vector hasta el final, me da un error de compilacion cuando intento acceder al vector con el iterador para mostrarlo en pantalla.

voy a dejar el código completo y si pueden ayudarme lo agradeceria, la verdad es que estuve probando casi de todo, y no me funciono nada. Con enteros si que funciona, con datos de un strutc tambien funciona, ya que sus atributos son públicos, pero me da error con la clase.

el codigo está escrito en el compilador Builder c++, se que muchas veces no sigue el estandar, pero creo que no es por eso, lo que creo es que algo debo de estar haciendo mal.

Código PHP:
#include <string.h>
#include <iostream>
#include <conio.h>
#include<vector>

using namespace std;

class 
complejo
{
private:
    
double real;
        
double imag;

public:
    
complejo(double realdouble imag);
        
complejo (): real(0),imag(0){}
    
void establecer(doubledouble);
        
void imprimir();
    
void agregar(complejo);
    
void agregar(doubledouble);
};

complejo::complejo(double realdouble imag)
{
    
this->real=real;
        
this->imag=imag;
}
//fin del constructor con parametros

// metodos de la clase complejo
void complejo::establecer(double rdouble i)
{
    
real=r;
        
imag=i;
}
//fin de establecer

void complejo::imprimir()
{
    
cout << "el numero es "<< real << " + " << imag << "i" << endl;

}
//fin de imprimir

void complejo::agregar(complejo a)
{
   
real=real+a.real;
   
imag=imag+a.imag;
}
//fin de agregar

void complejo::agregar(double adouble b)
{
    
realreal a;
        
imagimag b;
}


int main(int argccharargv[])
{
   
complejo c1,c2,c3;
   
vector<complejo>miComplejo;
   
vector<complejo>::iterator it;

   
c2.establecer(2,1);
   
c1.establecer(3,3);
   
c3.establecer(4,6);

   
c1.imprimir();
   
c2.imprimir();
   
c3.imprimir();

   
miComplejo.push_back(c1);
   
miComplejo.push_back(c2);
   
miComplejo.push_back(c3);


   
cout << miComplejo.size();

   for (
it=miComplejo.begin();it!=miComplejo.end();it++)
   {
       
cout << (*it)->imprimir() << endl;
   }
   
   return 
0;

}
//fin del main 

Última edición por xonil; 22/01/2011 a las 10:32