cuando compilo este code
#include<iostream>
#include<stdlib.h>
using namespace std;
class Persona{
private:
int edad;
string nombre;
public:
Persona(int, string);
void leer();
void corre();
};
//constructor nos sirve para inicializar los atributos de la clase
Persona::Persona(int _edad, string _nombre){
edad=_edad;
nombre=_nombre;
}
void Persona::leer(){
cout<<"soy"<<nombre<<"y estoy leendo"<<endl;
}
void Persona::corre(){
cout<<"soy"<<nombre<<"y estoy corriendo"<<endl;
}
int main(){
Persona p1=perror(20,"alejandro"); ->>> aca es donde me sale el error linea 27
p1.leer();
system("pause");
return 0;
}
||=== Build: Debug in app (compiler: GNU GCC Compiler) ===|
||In function 'int main()':|
|27|error: invalid conversion from 'int' to 'const char*' [-fpermissive]|
|27|error: too many arguments to function 'void perror(const char*)'|
|481|note: declared here|
27|error: conversion from 'void' to non-scalar type 'Persona' requested|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
me sale estos tipos de errores en Persona p1=perror(20,"alejandro");
Estás pasando 2 parámetros a perror. Solo acepta un string como parámetro. Tu le estás metiendo un int.
Tampoco entiendo para que quieres que p1 almacene el código del error.
No tienes ningún método para acceder a nombre.
Cita de: sytem200 en 19 Junio 2019, 10:05 AM
cuando compilo este code
#include<iostream>
#include<stdlib.h>
using namespace std;
class Persona{
private:
int edad;
string nombre;
public:
Persona(int, string);
void leer();
void corre();
};
//constructor nos sirve para inicializar los atributos de la clase
Persona::Persona(int _edad, string _nombre){
edad=_edad;
nombre=_nombre;
}
void Persona::leer(){
cout<<"soy"<<nombre<<"y estoy leendo"<<endl;
}
void Persona::corre(){
cout<<"soy"<<nombre<<"y estoy corriendo"<<endl;
}
int main(){
Persona p1=perror(20,"alejandro"); ->>> aca es donde me sale el error linea 27
p1.leer();
system("pause");
return 0;
}
||=== Build: Debug in app (compiler: GNU GCC Compiler) ===|
||In function 'int main()':|
|27|error: invalid conversion from 'int' to 'const char*' [-fpermissive]|
|27|error: too many arguments to function 'void perror(const char*)'|
|481|note: declared here|
27|error: conversion from 'void' to non-scalar type 'Persona' requested|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
me sale estos tipos de errores en Persona p1=perror(20,"alejandro");
Tenes un error de tipeo. Parece que intentabas escribir "
Persona" y el IDE que estas usando lo autocompleto a "
perror."
Por otro lado, no hace falta la asignacion, basta con pasar los parametros al constructor de la clase al inicializarla:
Persona p1(20, "alejandro");
A menos que quieras almacenarlo en la heap, en ese caso si es necesario asignarle la direccion de memoria de la nueva instancia a el puntero:
Persona *p1 = new Persona(20, "alejandro");
p1->leer();