初学C++,遇到一个很简单的问题,你们一定要帮帮我啊,在线等
//以下是一个构造圆,矩形,椭圆的程序,分别移动,显示他们,望高手们能指点一下,不胜感激
//以下是出现的一些错误:--------------------Configuration: yuan - Win32 Debug--------------------
Compiling...
main.cpp
c:\program files\microsoft visual studio\myprojects\z1\yuan\figures.h(36) : error C2614: 'point' : illegal member initialization: 'location' is not a base or member
c:\program files\microsoft visual studio\myprojects\z1\yuan\figures.h(126) : warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
c:\program files\microsoft visual studio\myprojects\z1\yuan\figures.h(126) : warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
c:\program files\microsoft visual studio\myprojects\z1\yuan\figures.h(128) : error C2969: syntax error : ';' : expected member function definition to end with '}'
c:\program files\microsoft visual studio\myprojects\z1\yuan\figures.h(129) : error C2059: syntax error : '{'
c:\program files\microsoft visual studio\myprojects\z1\yuan\figures.h(129) : error C2334: unexpected token(s) preceding '{'; skipping apparent function body
c:\program files\microsoft visual studio\myprojects\z1\yuan\main.cpp(8) : error C2065: 'drag' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\z1\yuan\main.cpp(11) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
main.obj - 5 error(s), 3 warning(s)
//figures.h
#include<stdio.h>
#include<conio.h>
class location{
protected:
int m;
int n;
public:
location(int intm,int intn)
{
m=intm;
n=intn;
}
int getm()
{
return(m);
}
int getn()
{
return(n);
}
};
class point{
protected:
int x,y;
bool visible;
public:
point(int initx,int inity):location(initx, inity)
{
visible=false;
}
int getx(void)
{
return(x);
}
int gety(void)
{
return(y);
}
virtual void show()
{
visible=true;
printf("移动到%d,%d位置\n",x,y);
}
virtual void hide()
{
visible=false;
printf("%d,%d位置擦除点\n",x,y);
};
void meveto (int newx,int newy)
{
hide();
x=newx;
y=newy;
show();
}
};
class Rectangle:public point
{
protected:
int height,width;
public:
Rectangle(int a,int b,int c,int d):point(a,b)
{
height=c;
width=d;
}
int getheight(void)
{
return(height);
}
int getwidth(void)
{
return(width);
}
void show()
{
visible=true;
printf("%d,%d位置显示height为%d,width为%d的矩形\n",x,y,height,width);
}
void hide()
{
visible=false;
printf("%d,%d位置擦除height为%d,width为%d的矩形\n",x,y,height,width);
}
};
class Circle : public point
{
protected:
int radius;
public:
Circle(int i,int j,int r):point(i,j)
{
radius =r;
}
int getr(void)
{
return(radius);
}
void show()
{
visible=true;
printf("%d,%d位置显示半径为%d的圆\n",x,y,radius);
}
void hide()
{
visible=false;
printf("%d,%d位置擦除半径为%d的圆\n",x,y,radius);
}
};
class Clipse : public location{
private:
int l1,int l2;
public:
Clipse(int i,int j,int k,int l):location(i,j);
{
l1=k;l2=l;
}
int getl1(void)
{
return(l1);
}
int getl2(void)
{
return(l2);
}
};
//main.cpp
bool getdelta(int &deltax,int &deltay)//通用函数,获得拖动方向
{
unsigned char keychar;
bool quit;
deltax=0;
deltay=0;
do
{
keychar=getch();
if(keychar()==1)
return(false);
quit=true;
switch(keychar)
{
case 72:deltay=-1;break;
case 80:deltay=1;break;
case 75: deltax=-1;break;
case 77:deltax=1;break;
default:quit=false;
}
}while(!quit)
return(true);
}
void drag(point &anyfigure,int dragby)//通用函数,拖动任意图形
{
int deltax,deltay;
int figurex,figurey;
anyfigure.show();
figurex=anyfigure.getx();
figurey=anyfigure.gety();
while(getdelta(deltax,deltay))
{
figurex+=deltax*dragby;
figurey+=deltay*dragby;
anyfigure.moveto(figurex,figurey);
}
}
#include"figures.h"
main()
{
Circle ac(200,100,50);
Rectangle ar(100,100,200,100);
Clipse ad(200,200,300,300);
drag(ac,5);
drag(ar,10);
drag(ad,15);
}