return0;//indicatesuccessfultermination
}//endmain
3.13
类定义:
#include//programusesC++standardstringclass
usingstd:
:
string;
//Invoiceclassdefinition
classInvoice
{
public:
//constructorinitializesthefourdatamembers
Invoice(string,string,int,int);
//setandgetfunctionsforthefourdatamembers
voidsetPartNumber(string);//partnumber
stringgetPartNumber();
voidsetPartDescription(string);//partdescription
stringgetPartDescription();
voidsetQuantity(int);//quantity
intgetQuantity();
voidsetPricePerItem(int);//priceperitem
intgetPricePerItem();
//calculatesinvoiceamountbymultiplyingquantityxpriceperitem
intgetInvoiceAmount();
private:
stringpartNumber;//thenumberofthepartbeingsold
stringpartDescription;//descriptionofthepartbeingsold
intquantity;//howmanyoftheitemsarebeingsold
intpricePerItem;//priceperitem
};//endclassInvoice
类成员函数:
#include
usingstd:
:
cout;
usingstd:
:
endl;
//includedefinitionofclassInvoicefromInvoice.h
#include"Invoice.h"
//Invoiceconstructorinitializestheclass'sfourdatamembers
Invoice:
:
Invoice(stringnumber,stringdescription,intcount,
intprice)
{
setPartNumber(number);//storepartNumber
setPartDescription(description);//storepartDescription
setQuantity(count);//validateandstorequantity
setPricePerItem(price);//validateandstorepricePerItem
}//endInvoiceconstructor
//setpartnumber
voidInvoice:
:
setPartNumber(stringnumber)
{
partNumber=number;//novalidationneeded
}//endfunctionsetPartNumber
//getpartnumber
stringInvoice:
:
getPartNumber()
{
returnpartNumber;
}//endfunctiongetPartNumber
//setpartdescription
voidInvoice:
:
setPartDescription(stringdescription)
{
partDescription=description;//novalidationneeded
}//endfunctionsetPartDescription
//getpartdescription
stringInvoice:
:
getPartDescription()
{
returnpartDescription;
}//endfunctiongetPartDescription
//setquantity;ifnotpositive,setto0
voidInvoice:
:
setQuantity(intcount)
{
if(count>0)//ifquantityispositive
quantity=count;//setquantitytocount
if(count<=0)//ifquantityisnotpositive
{
quantity=0;//setquantityto0
cout<<"\nquantitycannotbenegative.quantitysetto0.\n";
}//endif
}//endfunctionsetQuantity
//getquantity
intInvoice:
:
getQuantity()
{
returnquantity;
}//endfunctiongetQuantity
//setpriceperitem;ifnotpositive,setto0
voidInvoice:
:
setPricePerItem(intprice)
{
if(price>0)//ifpriceispositive
pricePerItem=price;//setpricePerItemtoprice
if(price<=0)//ifpriceisnotpositive
{
pricePerItem=0;//setpricePerItemto0
cout<<"\npricePerItemcannotbenegative."
<<"pricePerItemsetto0.\n";
}//endif
}//endfunctionsetPricePerItem
//getpriceperitem
intInvoice:
:
getPricePerItem()
{
returnpricePerItem;
}//endfunctiongetPricePerItem
//calulatesinvoiceamountbymultiplyingquantityxpriceperitem
intInvoice:
:
getInvoiceAmount()
{
returngetQuantity()*getPricePerItem();
}//endfunctiongetInvoiceAmount
测试函数:
#include
usingstd:
:
cout;
usingstd:
:
cin;
usingstd:
:
endl;
//includedefinitionofclassInvoicefromInvoice.h
#include"Invoice.h"
//functionmainbeginsprogramexecution
intmain()
{
//createanInvoiceobject
Invoiceinvoice("12345","Hammer",100,5);
//displaytheinvoicedatamembersandcalculatetheamount
cout<<"Partnumber:
"<cout<<"Partdescription:
"<cout<<"Quantity:
"<cout<<"Priceperitem:
$"<cout<<"Invoiceamount:
$"<