c++中关于类的一个简单程序,老提示成员函数undeclared identifier,求大神解答。急!附详细程序.....

#include<iostream.h>
class Point
{
public:
void InitPoint(float PointA_x=0,float PointA_y=0)
{
P1_x=PointA_x;
P1_y=PointA_y;
}

void Move(float New_x,float New_y)
{
P1_x+=New_x;
P1_y+=New_y;
}
float GetPointx()
{
return P1_x;
}
float GetPointy()
{
return P1_y;
}
private:
float P1_x,P1_y;
};
void main()
{
float x,y,a,b,c,d;
cout<<"Insert PointA_x,POintA_y"<<endl;
cin>>x;
cin>>y;
InitPoint(x,y);
cout<<"Insert New_x,New_y"<<endl;
cin>>a;
cin>>b;
Move(a,b);
c=GetPointx();
d=GetPointy();
cout<<"PointA_x="<<c<<endl;
cout<<"PointA_y="<<d<<endl;
}

你就没有声明一个Point类型的对象 InitPoint(x,y)Move(a,b);GetPointx();GetPointy();什么的就没法调用~
应该在声明处 加一个Point对象的实例: Point point; 然后再point.InitPoint(x,y) 之类的~
或者定义一个Point类型的指针new一下 Point* ptr=new Point;
然后prt->InitPoint(x,y)什么的... 记得 最后加上 delete ptrl;防止内存泄露
LZ面向对象还没理解透啊~虽然方法是 Public的并不是说可以孤立的调用,得有对象~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-10
undeclared identifier 字面意思是 有变量没有声明

在你的类中 P1_x 和 P1_y 都没有进行过声明
所以会报错

解决方法

class Point
{
public:
下加上声明
float P1_x, P1_y;
就行了
第2个回答  2010-11-10
#include<iostream.h>
class Point
{

public:
void InitPoint(float PointA_x=0,float PointA_y=0)
{
P1_x=PointA_x;
P1_y=PointA_y;
}

void Move(float New_x,float New_y)
{
P1_x+=New_x;
P1_y+=New_y;
}
float GetPointx()
{
return P1_x;
}
float GetPointy()
{
return P1_y;
}
private:
float P1_x,P1_y;
};
void main()
{
Point point;
float x,y,a,b,c,d;
cout<<"Insert PointA_x,POintA_y"<<endl;
cin>>x;
cin>>y;
point.InitPoint(x,y);
cout<<"Insert New_x,New_y"<<endl;
cin>>a;
cin>>b;
point.Move(a,b);
c=point.GetPointx();
d=point.GetPointy();
cout<<"PointA_x="<<c<<endl;
cout<<"PointA_y="<<d<<endl;
}
//调用类中的方法
相似回答