帮个忙,一个简单c++,运行了,但输出有错

来源:百度知道 编辑:UC知道 时间:2024/07/05 02:51:07
#include "stdafx.h"
#include<iostream>
using namespace std;
#include<string.h>
class under
{
private:int a;
public:
DisAttr(){}
Sarea(){}
Svolume(){}
};

class changfangxing:virtual public under
{
private:int x,y,z;
public:
changfangxing(int o,int p,int q)
{
x=o;
y=p;
z=q;
}
DisAttr()
{
cout<<"it's a changfangxing"<<endl;
}
int Sarea()
{
return 2*(x*y+y*z+x*z);
}
int Svolume()
{
return x*y*z;
}
};

class yuanzhui:virtual public under
{
private:int r,h,n;
public:
yuanzhui(int x,int y,int z)
{
r=x;
h=y;
n=z;
}
DisAttr()
{
cout<<"it's a yuanzhui"<<endl;
}
int Sarea()
{
return 3.14*r*r+n/2*3.14;
}<

所有的输出语句都写错了~
不是endl是endln
其他的应该没问题

其实各派生类与基类重名的函数没被执行,你可单步执行跟踪一下!其实只要把基类中与派生类同名的函数设为虚函数,即在函数前加virtual即可,派生类中的就不用加了!如果你想了解更多的话,你可以查关于类的多态性方面的知识!