Separacion de la interfaz me da error no lo encuentro si alguien lo analiza... Gracias.
El error me lo da en funciones.cpp con la linea return nombrepersona;
Main.cpp
Citar#include <iostream>
using std::cout;
using std::cin;
#include <string>
using std::string;
using std::getline;
#include "cabezal.h"
int main()
{
//Variables:
string tunombre;
//Mensajes/funciones.
cout << "Escribe tu nombre: ";
getline (cin , tunombre);
tunombrefuncion tunombrefuncion1 (tunombre);
cin.get();
return 0;
}
Funciones.cpp
Citar#include <iostream>
using std::cout;
using std::cin;
#include <string>
using std::string;
using std::getline;
#include "cabezal.h"
tunombrefuncion::tunombrefuncion(string nombre)
{
Establecernombre(nombre);
}
void tunombrefuncion::Establecernombre(string Enombre)
{
if (Enombre.length() <= 25)
{
nombrepersona = Enombre;
}
else
{
Enombre.substr (0 , 25);
nombrepersona = Enombre;
}
}
string Darnombre()
{
return nombrepersona;
}
Cabezal.h
Citar#include <iostream>
using std::cout;
using std::cin;
#include <string>
using std::string;
class tunombrefuncion
{
public:
tunombrefuncion(string nombre);
void Establecernombre(string Enombre);
string Darnombre();
private:
string nombrepersona;
};
agradezco la ayuda que me puedan dar, dado que no he encontrado la solucion.
En vez de usar tanto "using std::cout". Puedes resumirlo en un espacio genérico:
#include <iostream>
#include <string>
#include "cabezal.h"
using namespace std;
int main()
{
//Variables:
string tunombre;
//Mensajes/funciones.
cout << "Escribe tu nombre: ";
getline (cin , tunombre);
tunombrefuncion tunombrefuncion1 (tunombre);
cin.get();
return 0;
}
En cuanto al resto de código, yo lo veo correcto. Cuentanos que problema te da.
¿Te aseguraste de que ambos archivos estén en el mismo directorio?
Y que error te da?
hola pues mira el error me lo da en funciones.cpp, pense que era eso que me dijiste de que esten mal puestas osea n otro directorio, puse a funciones y a main en archivo de codigo fuente, y a cabezal en archivo de encabezado, pero el problema sigue igual, es en funcionnes.cpp la ultima funcion donde dice return nombrepersona; lo raro de esto es que trabaje con nombrepersona en el mismo archivo y no me da error que raro que solo en esa linea, el error es el siguiente: Error el identificador nombre persona no está definido, es muy raro esta bien que sea un private, pero main no lo puede usar, de modo que funciones lo usa y no da error hasta esa ultima linea :( cualquier cosa pregunten
Citar1>------ Operación Generar iniciada: proyecto: pruebac, configuración: Debug Win32 ------
1> funciones.cpp
1>c:\documents and settings\administrador\mis documentos\visual studio 2010\projects\pruebac\pruebac\funciones.cpp(29): error C2065: 'nombrepersona' : identificador no declarado
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
En donde defines la clase, pon esto en la primera línea:
#pragma once
De esta forma, te aseguras que solo se incluirá una vez el archivo (lo digo porque lo tienes incluido desde dos ficheros).
pero alguien pudiera explicarme cual es el error, osea porque no lo toma
Porque lo tienes declarado como privado:
private:
string nombrepersona;
Declaralo dentro de public.
Saludos
EDITO: ¿Porque incluyes estos archivos en cabezal.h?:
#include <iostream>
using std::cout;
using std::cin;
#include <string>
using std::string;
El codigo te serviria igual sin incluirlos... están ahí para ocupar espacio. Yo cuidaría un poco más la presentación del código.
Cita de: Miky Gonzalez en 19 Febrero 2013, 18:21 PM
Porque lo tienes declarado como privado:
private:
string nombrepersona;
Declaralo dentro de public.
Saludos
EDITO: ¿Porque incluyes estos archivos en cabezal.h?:
#include <iostream>
using std::cout;
using std::cin;
#include <string>
using std::string;
El codigo te serviria igual sin incluirlos... están ahí para ocupar espacio. Yo cuidaría un poco más la presentación del código.
pero todo lo que este en private puede ser usador por las funciones de la misma clase? y sino como puedo hacer para usar el private?
Puedes probar a poner:return tunombrefuncion::nombrepersona;
Pero de todas formas a parte que tu codigo no esta entre geshi-c++; Es inteligible, esta sucio, no se puede leer bien.
no me andubo eso, alguien sabe como se llama a una funcion que sea private?