elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  error cuando practico con clases (solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error cuando practico con clases (solucionado)  (Leído 3,572 veces)
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
error cuando practico con clases (solucionado)
« en: 18 Junio 2012, 21:33 pm »

hola amigos..estaba leyendo un libro y este código que voy a transcribir tenia unos pequeños errores (por lo menos eso me decía el compilador...pero la ultima parte me esta matando...si alguien me da una mano estaría genial
Código:
#include <iostream> //le borre el.h porque no funciona 
using namespace std;  //el codigo original no tenia esta parte
 class complex
 {
 private:
 double real, imag;
 public:
 complex (double a, double b) //constructor
 {real=a ; imag =b;}
 ~complex () {} //destructor
   //el codigo original tenia dos parentesis lo borre no tenian sentido
 complex (complex& a) //constructor copia
 {real=a.get_real(); imag=a.get_imag();}
 complex& operator = (complex& m) //asignación
 {real=m.get_real(); imag=m.get_imag(); return *this;}
 double get_real (void) {return real;} //acceso al encapsulamiento
 double get_imag (void) {return imag;}
 friend ostream& operator << (ostream& os, complex& a)
 { //redefinición del operador <<
 os << "Es un Complex=";
 os << a.get_real() <<"+"<< a.get_imag () <<"i"<<endl;
 return os;
 }
 };
 int main (void) //programa principal
 {
 complex a(1.,1.); //definimos un objeto a complejo
 complex b(double, double); //definimos un objeto b complejo
            //codigo orig. le faltaba el parentesis
b=a; //asignamos un complejo a otro
  complex c(a) ; //copiamos un complejo de otro
 cout <<"complex a ="<<a.get_real()<<"+"<<a.get_imag()<<"i"<<endl;
 cout <<"complex b ="<<b.get_real()<<"+"<<b.get_imag()<<"i""<<endl;
 cout << c << endl;
 return 0;
 }
error
Citar
c:\documents and settings\tissera\mis documentos\visual studio 2008\projects\hola mundo\hola mundo\hola.cpp(30) : error C2659: '=' : función como operando izquierdo
c:\documents and settings\tissera\mis documentos\visual studio 2008\projects\hola mundo\hola mundo\hola.cpp(33) : error C2228: el operando izquierdo de '.get_real' debe tener class/struct/union
c:\documents and settings\tissera\mis documentos\visual studio 2008\projects\hola mundo\hola mundo\hola.cpp(33) : error C2228: el operando izquierdo de '.get_imag' debe tener class/struct/union
c:\documents and settings\tissera\mis documentos\visual studio 2008\projects\hola mundo\hola mundo\hola.cpp(33) : error C2001: nueva línea en constante
c:\documents and settings\tissera\mis documentos\visual studio 2008\projects\hola mundo\hola mundo\hola.cpp(34) : error C2146: error de sintaxis : falta ';' delante del identificador 'cout'
El registro de compilación se guardó en el "file://c:\Documents and Settings\tissera\Mis documentos\Visual Studio 2008\Projects\hola mundo\hola mundo\Debug\BuildLog.htm"
hola mundo - 5 errores, 0 advertencias
========== Volver a generar todo: 0 correctos, 1 incorrectos, 0 omitidos ==========
por las dudas el libro es
Citar
Lluís Gil Espert
Montserrat Sánchez Romero
El C++ por la pràctica
Introducción al lenguaje y su filosofía
lindo para leer es pura practica


« Última modificación: 23 Junio 2012, 04:05 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: error cuando practico con clases
« Respuesta #1 en: 18 Junio 2012, 22:02 pm »

Hola

No puedes hacer esto en el main:
Código
  1. complex b(double, double);
  2.  
debes introducir los valores, no el tipo, igual que haces con "a":
Código
  1. complex a(1.,1.);
  2. complex b(-1, -1);
  3.  

Además te da otro fallo en el segundo cout del main porque te sobran las comillas del final "

Saludos


En línea

Breakbeat como forma de vida
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: error cuando practico con clases
« Respuesta #2 en: 18 Junio 2012, 22:08 pm »

clarooooo...porque defino ya no declaro nada....el código original ni los paréntesis o lo de adentro tenia ....
y yo que pensaba que estaba aca el error
Código:
complex& operator = (complex& m) //asignación
o sea ya se que el compilador te da el lugar exacto del error pero mas de una vez me paso que el error estaba mas bien dado por errores de declaración mas que de definición
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: error cuando practico con clases
« Respuesta #3 en: 18 Junio 2012, 22:22 pm »

Hola

el código original ni los paréntesis o lo de adentro tenia

Puede ser que no tenga los paréntesis pero para ello debes tener un constructor por defecto:

Código
  1. class complex {
  2. private:
  3.    double real, imag;
  4. public:
  5.    complex() {real = 0; imag = 0;}
  6. ...
  7.  

En este caso sí puedes hacer lo que dices
Código
  1. int main (void) //programa principal
  2. {
  3. complex a(1.,1.); //definimos un objeto a complejo
  4. complex b;
  5. ...
  6.  

Saludos
En línea

Breakbeat como forma de vida
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: error cuando practico con clases
« Respuesta #4 en: 18 Junio 2012, 22:24 pm »

 ;-) ;-) ;-) ;-) ;-)
gracias
 ;-) ;-) ;-) ;-) ;-)
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] C# - Duda sobre interfaz en clases
.NET (C#, VB.NET, ASP)
AlonsoCN 3 5,365 Último mensaje 21 Octubre 2009, 23:29 pm
por murdock_
¿Cómo puedo estructurar mi librería de clases en sublibrerías? [SOLUCIONADO]
.NET (C#, VB.NET, ASP)
<ИΘZIЭ(ŦB> 4 4,934 Último mensaje 17 Marzo 2011, 03:43 am
por <ИΘZIЭ(ŦB>
Heredar objeto entre clases [SOLUCIONADO]
PHP
Alex_bro 0 1,375 Último mensaje 22 Agosto 2011, 21:18 pm
por Alex_bro
Error en Registro por Clases (POO)
PHP
mokoMonster 6 2,525 Último mensaje 20 Noviembre 2011, 04:37 am
por mokoMonster
Ayuda!! :clases y funciones [SOLUCIONADO]
Programación C/C++
anamnesis_92 9 3,669 Último mensaje 24 Enero 2012, 19:25 pm
por Uknow
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines