首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-07-15 
继承的问题,为什么最后输出调用的那个函数结果那么奇怪#include iostreamusing namespace stdclass rec

继承的问题,为什么最后输出调用的那个函数结果那么奇怪
#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;
}

[解决办法]
public:
rectanguar ( double h)
{
double height = h;
}

这个的 DOUBLE去掉就可以。因为这个HEIGHT是局部变量,跟希望设置的height没关系,所以HEIGHT没输入进去。
[解决办法]
这里的object和object1之间没有任何关系,object1的width和length没有初始化,是随机值。
[解决办法]
你不能指望派生类对象能够继承基类对象的成员变量的值 他们两者只是都具有某些相同的变量 但值没任何关系

热点排行