[C con Clase] duda con clase

Humberto Boone Abdo humbba1 en yahoo.com
Mar Ene 21 09:19:46 CET 2014


Buenas,
Necesito ayuda con una clase, que apenas he estado estudiando esto por lo tanto es nuevo para mi, estuve resolviendo un problema que dice así:

Cree una clase llamada 'Factura', que una ferretería podría utilizar para representar una factura por un artículo vendido en la tienda. Una 'Factura' debe incluir cuatro piezas de información como miembros de datos: un número de pieza (tipo string), la descripción de la pieza (tipo string), la cantidad de artículos de ese tipo que se van a comprar (tipo int),y el precio por artículo (tipo int). Su clase debe tener un constructor que inicialice los cuatro miembros de datos. Proporcione una función 'establecer' y una función 'obtener' para cada miembro de datos. Además, proporcione una función miembro llamada 'obtenerMontoFactura', que calcule el monto de la factura (es decir, que multiplique la cantidad por el precio por artículo) y después devuelva ese monto como un valor int. Si la cantidad no es positiva debe establecerse en cero. Si el precio por artículo no es positivo, debe establecerse en 0. Escriba un programa que demuestre las
 capacidades de la clase 'Factura'.

Mis dudas son que no estoy seguro si hice bien el constructor y no se como hacerle para que cuando pide la descripción se puedan introducir caracteres espacio y no sólo la primera palabra que escribo.(Bueno  intente usar la función getline pero no me funcionó)
Tampoco entiendo si cree bien los objetos, porque cuando dejaba los paréntesis vacíos me daba error y lo que hice fue ponerle ("","",0,0) y así fue como funcionó pero no estoy seguro si sea una buena idea optar por eso.
Aquí los archivos:
factura.h:
#include<string>
usingstd::string;

classFactura{
public:
Factura(stringpieza,stringdesc,intcant,intprecio){
establecerNom(pieza);
establecerDesc(desc);
establecerCant(cant);
establecerPrecio(precio);
//Nombredepieza:
}
voidestablecerNom(stringpieza){
nompieza=pieza;

}
stringobtenerNom(){
returnnompieza;

}
//Descripción:
voidestablecerDesc(stringdesc){
descpieza=desc;
}
stringobtenerDesc(){
returndescpieza;
}
//Cantidad:
voidestablecerCant(intcant){
cantart=cant;

}
intobtenerCant(){
returncantart;
}
//Precio:
voidestablecerPrecio(intprecio){
if(precio<0){
precio=0;
}
precioart=precio;
}
intobtenerPrecio(){
returnprecioart;
}
//Montofactura:
intobtenerMontoFactura(){
intmonto;
monto=cantart+precioart;
if(monto<0){
monto=0;
}
returnmonto;

}
private:

stringnompieza;
stringdescpieza;
intcantart;
intprecioart;

};

main.cpp
#include<iostream>
usingnamespacestd;
#include<string>
usingnamespacestd;
#include"factura.h"
intmain()
{
Facturafactura1("","",0,0);
Facturafactura2("","",0,0);
stringnumpieza;
stringdesc;
intcanta;
intprecioa;

cout<<"Introduceelnumerodepieza:"<<endl;
cin>>numpieza;
factura1.establecerNom(numpieza);
cout<<"Escribeladescripcióndelarticulo"<<endl;
cin>>desc;
factura1.establecerDesc(desc);
cout<<"Introducelacantidaddearticulos"<<endl;
cin>>canta;
factura1.establecerCant(canta);
cout<<"Cualeselpreciodelarticulo?"<<endl;
cin>>precioa;
factura1.establecerPrecio(precioa);
cout<<"Elmontoes:"<<factura1.obtenerMontoFactura();
cout<<endl;

}

gracias de antemano.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140121/3ccc1487/attachment.html>


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