Dev - C++ - Problema con POO

 
Vista:
sin imagen de perfil
Val: 16
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con POO

Publicado por iñaki (8 intervenciones) el 02/02/2019 18:00:52
Hola buenas no puedo compilar este programa ya que en las lineas de "void Persona::correr() {

cout << "Soy" << nombre << "y estoy corriendo" << edad << endl;

}"

y la linea "void Persona::leer() {

cout << "Soy " << nombre << " y estoy leyendo un libro" << edad << endl;

}"

el operador de inserción "<<" de justo antes del nombre me está dando problemas concretamente me dice que ningún operador << coincide con estos operandos. Si alguien sabe el porque y que me lo explicara le estaría muy agradecido más abajo os dejo el programa entero para que podáis echarle un vistazo, otra vez muchas gracias por vuestro tiempo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//Clases en C++
 
#include <iostream>
#include<stdlib.h>
 
using namespace std;
 
class Persona
{
public://Metodos
	Persona(int, string);//Constructor
 
	void leer();
	void correr();
 
private://Atributos
 
	int edad;
	string nombre;
 
};
 
 
//Constructor Inicializar los atributos de la clase
Persona::Persona(int _edad, string _nombre)
{
 
	edad = _edad;
	nombre = _nombre;
 
}
 
void Persona::leer() {
 
	cout << "Soy " << nombre << " y estoy leyendo un libro" << edad << endl;
 
}
 
void Persona::correr() {
 
	cout << "Soy" << nombre << "y estoy corriendo" << edad << endl;
 
}
 
int main() {
 
	Persona p1 = Persona(20, "Iñaki");
 
	p1.leer();
 
	Persona p1 = Persona(20, "Iñaki");
	p1.correr();
 
	system("PAUSE");
	return 0;
}


P.D. Si quito los operadores de asignación y las dos variables que me están dando problemas el programa funciona sin ningún tipo de problema. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con POO

Publicado por Alfil (1444 intervenciones) el 05/02/2019 20:08:07
En la línea 51 habías definido por segunda vez el objeto p1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//Clases en C++
 
#include <iostream>
#include<stdlib.h>
 
using namespace std;
 
class Persona {
public://Metodos
    Persona(int, string);//Constructor
    void leer();
    void correr();
 
 private://Atributos
    int edad;
    string nombre;
};
 
//Constructor Inicializar los atributos de la clase
 
Persona::Persona(int _edad, string _nombre) {
    edad = _edad;
    nombre = _nombre;
}
 
void Persona::leer() {
 
	cout << "Soy " << nombre << " y estoy leyendo un libro" << edad << endl;
 
}
 
void Persona::correr() {
 
	cout << "Soy " << nombre << " y estoy corriendo " << edad << endl;
}
 
int main() {
 
	Persona p1 = Persona(20, "Iñaki");
	p1.leer();
	p1.correr();
	system("PAUSE");
 
	return 0;
 
} ///:~
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con POO

Publicado por iñaki (8 intervenciones) el 05/02/2019 20:32:50
Hola buenas.

Muchas gracias por tu respuesta he probado dos cosas, a eliminar la linea 51 y mantengo con el error y después de probar esto he probado ha crear un nuevo proyecto con el código que has pasado tu por si hubiera algo mas en la sintaxis que me hay dejado y nada tampoco también me da error y ademas en el mismo lugar.

Muchas gracias por tu respuesta y tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con POO

Publicado por Thanatos (199 intervenciones) el 06/02/2019 04:26:50
Como te indicó Alfil, estábas definiendo dos veces el mismo objeto p1 en la función main. Por otra parte, cuando utilices string en tu código también deberías incluir su header:

1
#include <string>

En algunas implementaciones de C++ tu código podría compilar como lo tienes escrito, pero las normas del lenguaje no garantizan que al incluir el header iostream se puedan usar todas las funcionalidades de string. Es posible que ese sea el motivo del mensaje acerca del operador <<.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con POO

Publicado por iñaki (8 intervenciones) el 06/02/2019 07:45:20
Muchísimas gracias más tarde lo miraré y comentaré si funciona bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con POO

Publicado por iñaki (8 intervenciones) el 06/02/2019 15:18:27
Listo ya pude probarlo añadí la librería y elimine la redundancia muchismas gracias a los dos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar