Programa error

Iniciado por elkiy, 17 Febrero 2013, 19:47 PM

0 Miembros y 1 Visitante están viendo este tema.

elkiy

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;
};

elkiy

agradezco la ayuda que me puedan dar, dado que no he encontrado la solucion.

amchacon

En vez de usar tanto "using std::cout". Puedes resumirlo en un espacio genérico:

Código (cpp) [Seleccionar]
#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.

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Sputnik_

¿Te aseguraste de que ambos archivos estén en el mismo directorio?
Las personas lo suficientemente locas como para pensar que pueden cambiar el mundo son las que lo cambian.

0xDani

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

elkiy

#5
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 ==========

amchacon

En donde defines la clase, pon esto en la primera línea:

Código (cpp) [Seleccionar]
#pragma once

De esta forma, te aseguras que solo se incluirá una vez el archivo (lo digo porque lo tienes incluido desde dos ficheros).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

elkiy

pero alguien pudiera explicarme cual es el error, osea porque no lo toma

Miky Gonzalez

#8
Porque lo tienes declarado como privado:
Código (cpp) [Seleccionar]
private:
  string nombrepersona;

Declaralo dentro de public.

Saludos

EDITO: ¿Porque incluyes estos archivos en cabezal.h?:
Código (cpp) [Seleccionar]
#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.
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica:

EN CONSTRUCCIÓN

elkiy

Cita de: Miky Gonzalez en 19 Febrero 2013, 18:21 PM
Porque lo tienes declarado como privado:
Código (cpp) [Seleccionar]
private:
  string nombrepersona;

Declaralo dentro de public.

Saludos

EDITO: ¿Porque incluyes estos archivos en cabezal.h?:
Código (cpp) [Seleccionar]
#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?