继承的问题,为什么最后输出调用的那个函数结果那么奇怪

Firehotest 2012-06-12 10:22:40
#include <iostream>
using namespace std;
class rectangle
{
public:
rectangle()
{
}
rectangle ( double l, double w)
{
length = l;
width = w;
}
double S ()
{
double temp = length*width;
return temp;
}
private:
double length;
double width;
};
class rectanguar : public rectangle
{
public:
rectanguar ( double h)
{
double height = h;
}
double volumn (double s)
{
double temp = height * s;
return temp;
}
private:
double height;
};
int main()
{
double t1, t2;
cout<<"请输入长方形的长和宽"<<endl;
cin>>t1;
cin>>t2;
rectangle object(t1,t2);
cout<<"该长方形的面积是"<<object.S()<<endl;
double t3;
cout<<"请输入在原来长方形的面积作为底面积的长方体的高"<<endl;
cin>>t3;
rectanguar object1 (t3);
cout<<"该长方体的体积是"<<object1.volumn(object.S())<<endl;
}
...全文
140 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunxc123 2012-06-12
  • 打赏
  • 举报
回复
你不能指望派生类对象能够继承基类对象的成员变量的值 他们两者只是都具有某些相同的变量 但值没任何关系
CodingBySea 2012-06-12
  • 打赏
  • 举报
回复
这里的object和object1之间没有任何关系,object1的width和length没有初始化,是随机值。
wlnju 2012-06-12
  • 打赏
  • 举报
回复
public:
rectanguar ( double h)
{
double height = h;
}

这个的 DOUBLE去掉就可以。因为这个HEIGHT是局部变量,跟希望设置的height没关系,所以HEIGHT没输入进去。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧