Hola, primero que nada, gracias a todos los que respondieron mi mensaje, ya que cada uno de ustedes me ayudó a aprender algo nuevo. El código lo solucioné y quedó bastante limpio después de sus consejos. La razón de los errores era que al escribir using namespace System, el compilador no encuentra (y sigue sin encontrar) ese "espacio con nombre", por lo tanto me decía que las funciones Console::Write, Console::Writeline, etc., no estaban declaradas, y tal y como dijo Juan Antonio, tuve que cambiar esas instrucciones por instrucciones cout y cambiar el espacio con nombre al std, que proviene de la librería <iostream>. El archivo de cabecera
stdfax.h efectivamente no lo necesitaba.<br><br>Quisiera saber si alguien me podría decir cómo puedo utilizar las funciones Console::Write, Console::Writeline, que supongo que son de alguna librería así como cout es de la librería de <iostream>.
<br><br>Y también preguntar por mis otras dudas ya expuestas:<br><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 255);"><span style="background-color: rgb(255, 255, 153);">
<span style="background-color: rgb(255, 255, 255);">¿Cómo
hago una clase administrada? En Visual Studio es con _gc antes del
nombre de la clase, en todos los compiladores es igual? <br><br>¿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.
<br><br>¿Cómo creo una clase no administrada? ¿Con _value antes del nombre de la clase? ¿Es igual para todos los compiladores?<br><br>¿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?
<br><br>Saludos y muchas gracias por la ayuda.<br></span></span></span></span><br><br><br><div><span class="gmail_quote">El día 26/12/06, <b class="gmail_sendername">Juan Antonio</b> <<a href="mailto:jalr43@hotmail.com">
jalr43@hotmail.com</a>> escribió:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div bgcolor="#ffffff">
<div><font face="Arial" size="2">Hola David,</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">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.</font></div><span class="q">
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"><font size="3"><font face="Times New Roman"><font style="background-color: rgb(255, 255, 153);">Console::Write("Número de Cuenta");<br style="background-color: rgb(255, 255, 153);">
<span style="background-color: rgb(255, 255, 153);">Console::Writeline(numCuenta);</span></font><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> </span><br style="background-color: rgb(255, 255, 153);">
<span style="background-color: rgb(255, 255, 153);">Console::Write("Balance
Actual");</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">Console::Writeln(currentBalance);</span></font></font></font></div>
<div><font face="Arial" size="2"><font size="3"><font face="Times New Roman"><span style="background-color: rgb(255, 255, 153);"></span></font></font></font> </div></span>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);">Modifica tus primeros includes por
estos:</span></font></font></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"></span></font></font> </div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><font size="3"><font face="Times New Roman"><span style="background-color: rgb(255, 255, 153);">#include
<iostream> //Entrada/salida estándar</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">#include "TarjetaCredito.h"</span><br style="background-color: rgb(255, 255, 153);">
<span style="background-color: rgb(255, 255, 153);"></span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">using namespace
std; //Para ahorrarte el std:: al usar funciones de
entrada/salida estándar. Más información en <a href="http://c.conclase.net/curso/index.php?cap=026" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://c.conclase.net/curso/index.php?cap=026</a>
</span></font></font></span></font></font></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><font size="3"><font face="Times New Roman"><span style="background-color: rgb(255, 255, 153);"></span></font></font></span></font>
</font> </div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><font size="3"><font face="Times New Roman"><span style="background-color: rgb(255, 255, 153);">Y
modifica tu función que muestra resultados
por:</span></font></font></span></font></font></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><font size="3"><font face="Times New Roman"><span style="background-color: rgb(255, 255, 153);"></span></font></font></span></font>
</font> </div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><font size="3"><font face="Times New Roman"><span style="background-color: rgb(255, 255, 153);"></span></font></font> </span></font>
</font></div>
<div><span style="background-color: rgb(255, 255, 153);">void
TarjetaCredito::Resultados()</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
cout
<< "Número de Cuenta "; //Más informació cout en <a href="http://c.conclase.net/curso/index.php?cap=903e#APD_cout" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://c.conclase.net/curso/index.php?cap=903e#APD_cout
</a></span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> cout
<< numCuenta;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
cout
<< "Balance Actual ";</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> cout
<< currentBalance;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">}<br></span><br style="background-color: rgb(255, 255, 153);"></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"></span></font></font> </div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);">La declaración de la
clase,</span></font></font></div><span class="q">
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"></span></font></font> </div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3">class TarjetaCredito<br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
public:</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
bool HacerCompra(double amount);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
void Pagar(double amount);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
void Resultados(); </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
private:</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
long numCuenta;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
double currentBalance;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
double creditLimit;</span><br style="background-color: rgb(255, 255, 153);"></font><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3">}</font></span></span></font></font></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3"></font></span></span></font></font> </div>
</span>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3">Con esto ya debería funcionarte sin
problemas.</font></span></span></font></font></div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"></span></span></font></font> </div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">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í:</span></span></font></font></div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"></span></span></font></font> </div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">Conectarte a una webcam que esté
instalada en Windows, configurarla, grabar vídeo, imágenes,
etc</span></span></font></font></div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">Crear interfaces gráficas de usuario
bastante rápido.</span></span></font></font></div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">Un montón de funciones para graficar
en pantalla, copiar el contenido de la pantalla en un .bmp,
etc</span></span></font></font></div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">Usar el ratón en tus
programas.</span></span></font></font></div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"></span></span></font></font> </div>
<div><font><font face="Times New Roman" size="3"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">Puedes consultar el curso del API de
MS-Windows en <a href="http://www.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.conclase.net</a>, ahí verás
muchas más cosas que permite hacer.</span></span></font></font></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3"></font></span></span></font></font> </div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3">Un saludo,</font></span></span></font></font>
</div><span class="sg">
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"><font face="Times New Roman" size="3">Juan Antonio.</font></span></span></font>
</font></div>
<div><br></div>
<div><font><font face="Arial" size="2"><span style="background-color: rgb(255, 255, 153);"></span></font></font> </div>
<div><font size="2"><br style="background-color: rgb(255, 255, 153);"><font face="Arial"></font></font></div>
</span><blockquote style="border-left: 2px solid rgb(0, 0, 0); padding-right: 0px; padding-left: 5px; margin-left: 5px; margin-right: 0px;"><span class="q">
<div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">----- Original Message ----- </div>
<div style="background: rgb(228, 228, 228) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
<b>From:</b>
<a title="l.fix3r.l@gmail.com" href="mailto:l.fix3r.l@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">David Reza</a>
</div>
<div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>To:</b> <a title="cconclase@listas.conclase.net" href="mailto:cconclase@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Lista de correo sobre C y C++</a>
</div></span><div><span class="e" id="q_10fbeb33cc1045d7_8">
<div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Sent:</b> Monday, December 25, 2006 7:07
AM</div>
<div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Subject:</b> [C con Clase] Problema: Errores
en el Compilador</div>
<div><br></div>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: <br><br>
<div style="color: rgb(0, 0, 0); text-align: center;">
<div style="text-align: left;"><span style="background-color: rgb(255, 255, 153);">#include <cstdlib></span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">#include <iostream>
</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">#include "stdafx.h</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
#include
"TarjetaCredito.h"</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"></span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
#using
<mscorlib.dll></span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">using namespace System;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
using namespace
std; //</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"></span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
int main()</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
TarjetaCredito
*Mi_Cuenta;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> Mi_Cuenta = new
TarjetaCredito; </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> Mi_Cuenta ->
HacerCompra(100);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> Mi_Cuenta ->
Pagar(70);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> Mi_Cuenta ->
Resultados();</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> delete
Mi_Cuenta;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> return
0;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">}</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">bool
TarjetaCredito::HacerCompra(double amount)</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
if
(currentBalance + amount > creditLimit)</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
return false;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
}</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
else</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
currentBalance += amount;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
return true;</span> <br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
}</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">}</span> <br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">void TarjetaCredito::Pagar(double
amount) </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
currentBalance -= amount; </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">}</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">void
TarjetaCredito::Resultados()</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
Console::Write("Número de Cuenta");</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
Console::Writeline(numCuenta);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);"> </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
Console::Write("Balance Actual");</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
Console::Writeln(currentBalance);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">}<br><br><span style="background-color: rgb(255, 255, 255);">Y el de el archivo de cabecera
TarjetaCredito es el siguiente:<br><span style="background-color: rgb(255, 255, 153);"><br>class TarjetaCredito</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
{</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
public:</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
bool HacerCompra(double amount);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
void Pagar(double amount);</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
void Resultados(); </span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
private:</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
long numCuenta;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
double currentBalance;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">
double creditLimit;</span><br style="background-color: rgb(255, 255, 153);"><span style="background-color: rgb(255, 255, 153);">}<br><br><span style="background-color: rgb(255, 255, 255);">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? <br><br>Otras preguntas:<br><br>Qué es API? Sé que es Application
Programming Interface pero podrían darme ejemplos?<br><br>¿Cómo hago una clase
administrada? En Visual Studio es con _gc antes del nombre de la clase, en
todos los compiladores es igual? <br><br>¿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. <br><br>¿Cómo creo una clase no
administrada? ¿Con _value antes del nombre de la clase? ¿Es igual para todos
los compiladores?<br><br>¿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?
<br><br>Ojalá y puedan ayudarme. Saludos desde México
;)<br></span></span><br><br></span></span></div><span></span></div>--------------------------<br>|
= David Reza = |</span></div><span class="q"><p></p><hr>
<p></p></span></blockquote></div><br><br></blockquote></div><br><br clear="all"><br>-- <br> | = David Reza = |