设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1768|回复: 8
打印 上一主题 下一主题

这个程序有两个错误,请问要怎样改?

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 01:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iostream.h>
class Point
{
public:
Point(){cout<<""<<endl;};
~Point(){}
void Display()
{ cout<<"x="<<x<<"y="<<y<<endl; }
protected:
float x,y;
};
class PointCircle:public Point
{
private:
float r;
public:
PointCircle(){cout<<""<<endl;};
~PointCircle(){}
void SetPointCircle(float X,float Y,float R)
{
double L,S;
x=X;y=Y;r=R;
L=2*3.1415*R;
S=3.1415*R*R;
}
void Display()
{cout<<x<<y<<L<<S<<endl;}
};
void main()
{
PointCircle p1;
p1.SetPointCircle(1,1,1);
p1.Display();
cout<<endl;
}
这个程序是定义一个点类Point,并由此派生出一个圆类.有两个错误
i:\p23941\p23941.cpp(27) : error C2065: 'L' : undeclared identifier
i:\p23941\p23941.cpp(27) : error C2065: 'S' : undeclared identifier
Error executing cl.exe.
P23941.exe - 2 error(s), 0 warning(s)
我想来想去还是没改出来....
哪位帮一下忙啊....
谢谢....
2#
发表于 2009-11-4 01:27:53 | 只看该作者
Display()不能调用L和S,超出了L和S的作用域,把它们定义成PointCircle的成员变量应该没问题了.
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 01:27:54 | 只看该作者

。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 01:27:55 | 只看该作者
太有小心了,写完之后要先目检,然后再Compile
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-4 01:27:56 | 只看该作者
目检?第一次听这个词.一二百行的程序目检还行,再长点的我可没那种精力.

我从来都是写好了直接编译.不过大多数时候是写了一些基本框架只后就编译,看看有没有什么错误,没错误的话在接着写.

如果有错的话,现今的IDE几乎都有错误定位功能了,按下一个快捷键就能找到错误的地方了.就算不能定位到错误源头,
有些经验的,大体也知道出现错误的地方了

我觉的只要保持一个良好的编码习惯,出现被IDE的错误定位功能搞的晕头转向的情况很少,最起码我没碰到过.
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-4 01:27:57 | 只看该作者
各位,可是我运行出来结果还是不对啊,没有L,也没有S..........
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-4 01:27:58 | 只看该作者
把double L,S;
从SetPointCircle里面挪到
private:
float r;
后面
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-4 01:27:59 | 只看该作者
再把Display改一下,把x,y,L,S隔开
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-4 01:28:00 | 只看该作者
谢谢......可以了...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 23:23 , Processed in 0.095242 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表