sorry to keep asking about my crappy programs but im learning so its anoying lol.
its from a book im reading but it dont work, i cannot fix it lol.
any ideas, the errors are below the code.
Code:
#include <iostream>
using namespace std;
typedef unsigned short int USHORT;
typedef unsigned long int ULONG;
enum BOOL { FALSE, TRUE };
enum CHOICE { DrawRect = 1, GetArea,
GetPerim, ChangeDimensions, Quit};
// Rectangle class declaration
class Rectangle
{
public:
//Constructors
Rectangle (USHORT Width, USHORT Height);
~Rectangle();
// Accessors
USHORT GetHeight() const { return itsHeight; }
USHORT GetWidth() const { return itsWidth; }
ULONG GetArea() const { return itsHeight * itsWidth; }
ULONG GetPerim() const { return 2*itsHeight + 2*itsWidth; }
void SetSize ( USHORT newWidth, USHORT newHeight);
// Misc. Methods
void DrawShape() const;
private:
USHORT itsWidth;
USHORT itsHeight;
};
// class method implementations
void Rectangle::SetSize(USHORT newWidth, USHORT newHeight)
{
itsWidth = newWidth;
itsHeight = newHeight;
}
Rectangle::Rectangle(USHORT width, USHORT height)
{
itsWidth = width;
itsHeight = height;
}
Rectangle::~Rectangle()
USHORT DoMenu();
void DoDrawRect(Rectangle);
void DoGetArea(Rectangle);
void DoGetPerim(Rectangle);
void main()
{
// initialize a rectangle to 10,20
Rectangle theRect(30,5);
USHORT choice = DrawRect;
USHORT fQuit = FALSE;
while (!fQuit)
{
choice = DoMenu();
if(choice < DrawRect || choice > Quit)
{
cout <<"\nInvalid choice, please try again.\n\n";
continue;
}
switch(choice)
{
case DrawRect:
DoDrawRect(theRect);
break;
case GetArea:
DoGetArea(theRect);
break;
case GetPerim:
DoGetPerim(theRect);
break;
case ChangeDimensions:
USHORT newLength, newWidth;
cout <<"\nNew width: ";
cin >> newWidth;
cout <<"\nNew height: ";
cin >> newLength;
theRect.SetSize(newWidth, newLength);
DoDrawRect(theRect);
break;
default:
cout <<"Error in choice!\n";
fQuit = TRUE;
break;
}
}
}
USHORT DoMenu()
{
USHORT choice;
cout <<"\n\n **** Menu **** \n";
cout <<"(1) Draw Rectangle \n";
cout <<"(2) Area \n";
cout <<"(3) Perimeter \n";
cout <<"(4) Resize \n";
cout <<"(5) Quit \n";
cin >> choice;
return choice;
}
void DoDrawRect(Rectangle theRect)
{
USHORT height = theRect.GetHeight();
USHORT width = theRect.GetWidth();
for (USHORT i = 0; i<height; i++)
{
for(USHORT j = 0; j<width; j++)
cout <<"*";
cout <<"\n";
}
}
void DoGetArea(Rectangle theRect)
{
cout <<"Area: " << theRect.GetArea() << endl;
}
void DoGetPerim(Rectangle theRect)
{
cout <<"Perimeter: " << theRect.GetPerim << endl;
}
Code:
------ Build started: Project: big test, Configuration: Debug Win32 ------
Compiling...
big test.cpp
.\big test.cpp(50) : error C3646: 'USHORT' : unknown override specifier
.\big test.cpp(50) : error C3646: 'DoMenu' : unknown override specifier
.\big test.cpp(50) : error C2091: function returns function
.\big test.cpp(50) : error C2761: 'Rectangle::~Rectangle(void)' : member function redeclaration not allowed
.\big test.cpp(65) : error C3861: 'DoMenu': identifier not found
.\big test.cpp(101) : error C2365: 'DoMenu' : redefinition; previous definition was 'formerly unknown identifier'
.\big test.cpp(134) : error C3867: 'Rectangle::GetPerim': function call missing argument list; use '&Rectangle::GetPerim' to create a pointer to member
Build log was saved at "file://c:\Documents and Settings\Reece.YOUR-E0367A1424\My Documents\Visual Studio 2005\Projects\big test\big test\Debug\BuildLog.htm"
big test - 7 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
please help. cheers in advance. reece.