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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Constructores C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Constructores C++  (Leído 2,617 veces)
Palante

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Constructores C++
« en: 12 Febrero 2017, 16:52 pm »

Hola, estaba practicando con constructores en C++, y no me acaba de compilar  este ejercicio en C++, me salen muchos errores, y soy muy malo  interpretando los mensajes del compilador, me vendrían muy bien vuestros consejos

 ;D ;D

este es el código:

Código
  1. //Constructores
  2.  
  3. #include<iostream>
  4.  
  5. using namespace std;
  6.  
  7. class Persona {
  8.  
  9. private:
  10.  
  11. string Nombre;
  12.  
  13.  
  14. public:
  15.  
  16. Persona () {
  17.  
  18. Nombre = "Sin Nombre";
  19. }
  20.  
  21. Persona (string_Nombre) {
  22.  
  23. Nombre =_Nombre;
  24. }
  25. string Getnombre () {
  26.  
  27. return Nombre;}
  28.  
  29. };
  30.  
  31. int main (void) {
  32.  
  33. Persona Mipersona ("Alex"),  Otrapersona ("Sergio");
  34.  
  35. Persona Sinpersona;
  36.  
  37. cout<<Mipersona.GetNombre();
  38.  
  39. cout<<endl;
  40.  
  41. cout<<Otrapersona.Getnombre();
  42. cout<<endl;
  43. cout<<Sinpersona.Getnombre();
  44. cout<<endl;
  45.  
  46. }
  47.  
  48.  

Estos son los errores:

Código:
lagrima.cpp:25:1: error: field ‘string_Nombre’ has incomplete type ‘Persona’
 }
 ^
lagrima.cpp:8:7: note: definition of ‘class Persona’ is not complete until the closing brace
 class Persona {
       ^
lagrima.cpp:25:1: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
 }
 ^
lagrima.cpp:25:1: error: expected ‘;’ at end of member declaration
lagrima.cpp:30:1: error: expected ‘;’ after class definition
 }
 ^
lagrima.cpp: In function ‘int main()’:
lagrima.cpp:34:26: error: no matching function for call to ‘Persona::Persona(const char [5])’
 Persona Mipersona ("Alex"),  Otrapersona ("Sergio");
                          ^
lagrima.cpp:17:1: note: candidate: Persona::Persona()
 Persona () {
 ^
lagrima.cpp:17:1: note:   candidate expects 0 arguments, 1 provided
lagrima.cpp:8:7: note: candidate: Persona::Persona(const Persona&)
 class Persona {
       ^
lagrima.cpp:8:7: note:   no known conversion for argument 1 from ‘const char [5]’ to ‘const Persona&’
lagrima.cpp:34:51: error: no matching function for call to ‘Persona::Persona(const char [7])’
 Persona Mipersona ("Alex"),  Otrapersona ("Sergio");
                                                   ^
lagrima.cpp:17:1: note: candidate: Persona::Persona()
 Persona () {
 ^
lagrima.cpp:17:1: note:   candidate expects 0 arguments, 1 provided
lagrima.cpp:8:7: note: candidate: Persona::Persona(const Persona&)
 class Persona {
       ^
lagrima.cpp:8:7: note:   no known conversion for argument 1 from ‘const char [7]’ to ‘const Persona&’
lagrima.cpp:38:17: error: ‘class Persona’ has no member named ‘GetNombre’
 cout<<Mipersona.GetNombre();
                 ^
agradezco vuestra ayuda,muchas gracias


« Última modificación: 12 Febrero 2017, 18:13 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Constructores C++
« Respuesta #1 en: 12 Febrero 2017, 18:26 pm »

Código:
error: field ‘string_Nombre’ has incomplete type
error: no matching function for call to ‘Persona::Persona(const char [5])
no known conversion for argument 1 from ‘const char [5]’ to ‘const Persona&’

Código
  1. Persona (string_Nombre) {

string_Nombre no tiene tipo, creo que quisiste decir

Código
  1. Persona (string _Nombre) {

eso resuelve casi todo los problemas, ya que si la variable no tiene tipo, se considera del tipo de la clase

el otro error te lo dejo, es facil de ver


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Palante

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Constructores C++
« Respuesta #2 en: 12 Febrero 2017, 19:30 pm »

efectivamente, ahora solo me sale un error, pero veo mi función  main y no veo error:

Código:
int main (void) {

Persona Mipersona ("Alex"),  Otrapersona ("Sergio");

Persona Sinpersona;

cout<<Mipersona.GetNombre();

cout<<endl;

cout<<Otrapersona.Getnombre();
cout<<endl;
cout<<Sinpersona.Getnombre();
cout<<endl;

}

no veo error ahí ;D

Gracias
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Constructores C++
« Respuesta #3 en: 12 Febrero 2017, 19:41 pm »

que error ? recuerda como es esto... copy paste siempre de los errores
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
JS3

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: Constructores C++
« Respuesta #4 en: 14 Febrero 2017, 02:10 am »

Hola estas declarando mal, trata con esto

Código
  1. Persona miPersona = new Persona("Alex");
  2. Persona otraPersona = new Persona("Sergio");
  3.  
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Constructores C++
« Respuesta #5 en: 14 Febrero 2017, 08:59 am »

Hola estas declarando mal, trata con esto

Código
  1. Persona miPersona = new Persona("Alex");
  2. Persona otraPersona = new Persona("Sergio");
  3.  

Eso es en Java.

Código
  1. cout<<Mipersona.GetNombre();

El método es Getnombre, sin mayúscula en la N
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Constructores C++
« Respuesta #6 en: 14 Febrero 2017, 14:17 pm »

Hola estas declarando mal, trata con esto

Código
  1. Persona miPersona = new Persona("Alex");
  2. Persona otraPersona = new Persona("Sergio");
  3.  

Eso es en Java.

Código
  1. cout<<Mipersona.GetNombre();

El método es Getnombre, sin mayúscula en la N


En c++ también puede usarse el operador new, de hecho, fue en c++ donde se empezo a usar ese tipo de declaración, aunque es relativamente diferente al que se usa en java y c#.
En línea


class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Constructores C++
« Respuesta #7 en: 14 Febrero 2017, 15:24 pm »

Si, pero new retorna puntero a obtejo, y ahi no se estan declarando punteros
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Constructores de clase
Programación Visual Basic
Gangrel 1 1,294 Último mensaje 22 Abril 2006, 01:56 am
por Gangrel
Constructores en vb.net???
.NET (C#, VB.NET, ASP)
Skeletron 3 10,707 Último mensaje 14 Octubre 2009, 03:55 am
por seba123neo
JAVA CONSTRUCTORES
Java
rodrigo619 2 2,864 Último mensaje 29 Abril 2010, 22:11 pm
por Debci
[C#] Heredar constructores
.NET (C#, VB.NET, ASP)
Siuto 6 11,156 Último mensaje 3 Octubre 2010, 18:53 pm
por [D4N93R]
constructores en java
Java
sauce19 7 5,485 Último mensaje 5 Septiembre 2011, 00:26 am
por [Case]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines