[C con Clase] No me reconoce tipos de datos ni métodos estándar aunque pongo librerias
Steven Davidson
srd4121 en njit.edu
Lun Abr 16 17:58:24 CEST 2012
Hola Redondo,
On 4/16/2012 9:29 AM, redondo.af wrote:
> Buenos días:
>
> Soy novato en esto del C++ y por lo que parece también bastante torpe
> :-D ...
> La cuestión es que al compilar un programita que me he creado me da
> un par de errores que no se como solucionar
>
> 'cin' : identificador no declarado
> el operando izquierdo de '.ignore' debe tener class/struct/union
>
>
> Os pongo el contenido de los ficheros (lo he compilado tanto con el
> visual studio 2010 (c++) como con el Dev-C++.
>
Viendo el código que nos envías, hay muchas cosas que VC++ ha agregado
por el tipo de proyecto que has elegido. Si quieres crear un programa
estándar para la consola, sugiero eliminar lo de "stdafx.h" y lo de
'_tmain()'. Si mal no recuerdo, puedes hacer esto eligiendo un proyecto
vacío, por lo que tendrás que crear los ficheros y luego agregarlos al
proyecto. Si ya tienes los ficheros creados previamente, entonces sólo
necesitas agregarlos al proyecto.
> ******************************************************************************
Veamos el código fuente.
> Fichero main al que he llamado PracticaED.cpp:
>
> // PracticaED.cpp: define el punto de entrada de la aplicación de consola.
> //
>
> #include "stdafx.h"
> #include<string>
> #include<iostream>
> #include<stdlib.h>
> #include<stdio.h>
Debes usar los nombres estándares para las bibliotecas que provienen de
ANSI C:
#include <cstdlib>
#include <cstdio>
No entiendo por qué necesitas <cstdio> si ya tienes <iostream>. Es
posible que por los problemas que estabas teniendo, decidiste usar <cstdio>.
> #include "ClsComun.cpp"
Esto es incorrecto. La idea es incluir el fichero de cabecera, que en
este caso es "ClsComun.h". El fichero fuente, "ClsComun.cpp", se
compilará por separado y se enlazará con la compilación de este fichero
fuente, "PracticaED.cpp", para generar el fichero ejecutable.
> using namespace std;
>
[CORTE]
> ********************************************************************************
>
> Fichero ClsComun.cpp
>
>
> #include "stdafx.h"
> #include "ClsComun.h"
>
Aquí está al problema. Usas 'cin' en este fichero fuente, pero no
incluyes su definición, que está en <iostream>. Incluye este fichero de
cabecera:
#include <iostream>
using std::cin; // Sólo nos interesa 'cin'
>
> ClsComun::ClsComun()
> {
> }
>
> ClsComun::~ClsComun()
> {
> }
> void ClsComun::ignorar()
> {
> cin.ignore();
> }
>
Espero haber aclarado las dudas.
Steven
Más información sobre la lista de distribución Cconclase