[C con Clase] Problema: Errores en el Compilador

Juan Antonio jalr43 en hotmail.com
Mar Dic 26 13:14:03 CET 2006


Hola David,

crea un proyecto de consola con el DEV-C++ en C++. Lo único que aparece en tu código que da un poco la lata por los includes y demas es cuando se muestra por pantalla.

Console::Write("Número de Cuenta");
Console::Writeline(numCuenta);
     
Console::Write("Balance Actual");
Console::Writeln(currentBalance);

Modifica tus primeros includes por estos:

#include <iostream>    //Entrada/salida estándar
#include "TarjetaCredito.h"

using namespace std;    //Para ahorrarte el std:: al usar funciones de entrada/salida estándar. Más información en http://c.conclase.net/curso/index.php?cap=026

Y modifica tu función que muestra resultados por:


void TarjetaCredito::Resultados()
{
     cout << "Número de Cuenta ";    //Más informació cout en http://c.conclase.net/curso/index.php?cap=903e#APD_cout
     cout << numCuenta;
     
     cout << "Balance Actual ";
     cout << currentBalance;
}



La declaración de la clase,

class TarjetaCredito
{
      public:
             bool HacerCompra(double amount);
             void Pagar(double amount);
             void Resultados(); 
      private:
              long numCuenta;
              double currentBalance;
              double creditLimit;
}

Con esto ya debería funcionarte sin problemas.

API como ya te dijeron son un montón de funciones, variables, estructura, macros, etc que te permiten programar cosas bastantes complejas dándote el código ya hecho. Por ejemplo el API de MS-Windows te permite hacer cosas así:

Conectarte a una webcam que esté instalada en Windows, configurarla, grabar vídeo, imágenes, etc
Crear interfaces gráficas de usuario bastante rápido.
Un montón de funciones para graficar en pantalla, copiar el contenido de la pantalla en un .bmp, etc
Usar el ratón en tus programas.

Puedes consultar el curso del API de MS-Windows en www.conclase.net, ahí verás muchas más cosas que permite hacer.

Un saludo,
Juan Antonio.





  ----- Original Message ----- 
  From: David Reza 
  To: Lista de correo sobre C y C++ 
  Sent: Monday, December 25, 2006 7:07 AM
  Subject: [C con Clase] Problema: Errores en el Compilador


  Hola, pues apenas hoy, en plena víspera de Navidad aquí en México me decidí a instalar el Dev-C++ y a relizar una clase y un objeto que tengo como ejemplos en un libro de C++. Según basta con poner esto y me debe de compilar todo. El archivo fuente es este: 


  #include <cstdlib>
  #include <iostream>
  #include "stdafx.h
  #include "TarjetaCredito.h"

  #using <mscorlib.dll>
  using namespace System;
  using namespace std;    //

  int main()
  {
      TarjetaCredito *Mi_Cuenta;
      Mi_Cuenta = new TarjetaCredito; 
      Mi_Cuenta -> HacerCompra(100);
      Mi_Cuenta -> Pagar(70);
      Mi_Cuenta -> Resultados();
      delete Mi_Cuenta;
      return 0;
  }

  bool TarjetaCredito::HacerCompra(double amount)
  {
       if (currentBalance + amount > creditLimit)
       {
                          return false;
       }
       else
       {
           currentBalance += amount;
           return true; 
       }
  } 

  void TarjetaCredito::Pagar(double amount) 
  {
       currentBalance -= amount; 
  }

  void TarjetaCredito::Resultados()
  {
       Console::Write("Número de Cuenta");
       Console::Writeline(numCuenta);
       
       Console::Write("Balance Actual");
       Console::Writeln(currentBalance);
  }

  Y el de el archivo de cabecera TarjetaCredito es el siguiente:

  class TarjetaCredito
  {
        public:
               bool HacerCompra(double amount);
               void Pagar(double amount);
               void Resultados(); 
        private:
                long numCuenta;
                double currentBalance;
                double creditLimit;
  }

  Podrían decirme en qué estoy mal? como digo, según el libro con eso basta para que el programa se compile pero me dan errores en las primeras lineas de include. Se supone que el programa debería ejecutar las funciones miembro de la clase TarjetaCredito y darme mal los datos de todas las variables miembro privadas ya que nunca las inicialicé y toman cualquier valor que esté en la memoria donde se encuentra el obejeto verdad? 

  Otras preguntas:

  Qué es API? Sé que es Application Programming Interface pero podrían darme ejemplos?

  ¿Cómo hago una clase administrada? En Visual Studio es con _gc antes del nombre de la clase, en todos los compiladores es igual? 

  ¿La clase administrada me sirve para que los objetos se eliminen solos cuando ya no se necesiten? También sé que se crean en el CLR (Common Language Runtime) en vez de crearse en la pila y por tanto se tienen que crear objetos primero definiendo un puntero para poder almacenar la dirección de memoria del objeto. 

  ¿Cómo creo una clase no administrada? ¿Con _value antes del nombre de la clase? ¿Es igual para todos los compiladores?

  ¿Un puntero puede almacenar otro puntero? ¿En las clases administradas se supone que al crear un objeto se crea en tiempo de ejecución y en realidad devuelve un puntero que almacenamos en otro puntero? 

  Ojalá y puedan ayudarme. Saludos desde México ;)



  --------------------------
  | = David Reza = | 


------------------------------------------------------------------------------


  _______________________________________________
  Cconclase mailing list
  Cconclase en listas.conclase.net
  http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061226/e87db1c5/attachment.html>


Más información sobre la lista de distribución Cconclase