[C con Clase] Problema: Errores en el Compilador

David Reza l.fix3r.l en gmail.com
Lun Dic 25 07:07:56 CET 2006


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 = |
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061225/2cc70d7b/attachment.html>


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