Autor
|
Tema: Constructores C++ (Leído 2,618 veces)
|
Palante
Desconectado
Mensajes: 17
|
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 este es el código: //Constructores #include<iostream> using namespace std; class Persona { private: string Nombre; public: Persona () { Nombre = "Sin Nombre"; } Persona (string_Nombre) { Nombre =_Nombre; } string Getnombre () { return Nombre;} }; 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; }
Estos son los errores: 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
|
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&’ Persona (string_Nombre) {
string_Nombre no tiene tipo, creo que quisiste decir 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
Mensajes: 17
|
efectivamente, ahora solo me sale un error, pero veo mi función main y no veo error: 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í Gracias
|
|
|
En línea
|
|
|
|
engel lex
|
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
Mensajes: 18
|
Hola estas declarando mal, trata con esto Persona miPersona = new Persona("Alex"); Persona otraPersona = new Persona("Sergio");
|
|
|
En línea
|
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
Hola estas declarando mal, trata con esto Persona miPersona = new Persona("Alex"); Persona otraPersona = new Persona("Sergio");
Eso es en Java. 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
Mensajes: 3.034
|
Hola estas declarando mal, trata con esto Persona miPersona = new Persona("Alex"); Persona otraPersona = new Persona("Sergio");
Eso es en Java. 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
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
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 |
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Constructores de clase
Programación Visual Basic
|
Gangrel
|
1
|
1,295
|
22 Abril 2006, 01:56 am
por Gangrel
|
|
|
Constructores en vb.net???
.NET (C#, VB.NET, ASP)
|
Skeletron
|
3
|
10,707
|
14 Octubre 2009, 03:55 am
por seba123neo
|
|
|
JAVA CONSTRUCTORES
Java
|
rodrigo619
|
2
|
2,864
|
29 Abril 2010, 22:11 pm
por Debci
|
|
|
[C#] Heredar constructores
.NET (C#, VB.NET, ASP)
|
Siuto
|
6
|
11,156
|
3 Octubre 2010, 18:53 pm
por [D4N93R]
|
|
|
constructores en java
Java
|
sauce19
|
7
|
5,485
|
5 Septiembre 2011, 00:26 am
por [Case]
|
|