源代码如下: (问题都在双斜杠后面)
#include
using namespace std;
class point
{
public:
/* point()
{
X=Y=0;
cout<<"点基默认构造函数< }
point(int xx=0,int yy=0)
{
X=xx;Y=yy;
cout<<"点基构造函数"< }
point(point &p)
{
X=p.X;Y=p.Y;
cout<<"点构造函数被调用"< }
~point(){np--;}
*/
void InitP(float xx=0,float yy=0){X=xx;Y=yy;}
void Move(float xOff,float yOff){X+=xOff;Y+=yOff;}
float GetX(){return X;}
float GetY(){return Y;}
private:
int X,Y;
static int np;
};
int point::np=0;//问题1: np只能在类外部定义,在static那里定义有错,为什么?
class rectang:public point
{
public:
void InitR(float x,float y,float w,float h)
{InitP(x,y);W=w;H=h;}//问题2: 前一句InitR(x,y,w,h)中的x,y如何从本句继承过来的啊?
float GetW(){return W;}
float GetH(){return H;}
private:
float H,W;
};
void main()
{
rectang rect;
rect.InitR(2,3,20,10);
rect.Move(3,2);
cout<<"X="< cout<<"Y="< cout<<"W="< cout<<"H="<}
问题3: class Point没有构造函数和析构函数,这样的Point好像没有任何意义,我用/*...*/把构造和析构函数括起来了,因为会和public的InitP(x,y)冲突,如何解决这个问题啊?
再次感谢各位, 请给予指点, 谢谢.
--------------------next---------------------
阅读(1033) | 评论(0) | 转发(0) |