chuxuechengxu 发表于 2008-6-18 08:42

有哪个高手可以帮我看看这个程序哪里有问题吗?谢谢

#include<iostream>
using namespace std;
class shape
{
public:
        shape(){}
        ~shape(){}
        virtual float GetArea(){return -1;}
};
class Rectangle:public shape
{
public:
        Rectangle(int len,int wid){};
        ~Rectangle(){};
        virtual float GetArea(){return len*wid;}
private:
        int wid;
        int len;
};
void main()
{
        shape *sp;
        sp = new Rectangle(2,3);
        cout<<"the area of the rectangle is"<<sp->GetArea()<<endl;
delete sp;
}

zjl138 发表于 2008-6-18 10:36

Rectangle(int len,int wid){};//这里没有对类的数据成员赋值.

virtual float GetArea(){return len*wid;}//这里的virtual最好也去掉吧.

[quote]
[quote][font=新宋体][size=2][color=#008000]/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
[/color][color=#FF0000]#include<iostream>
[/color][color=#0000FF]using namespace [/color][color=#FF0000]std[/color];
[color=#0000FF]class [/color]shape
[color=#800000]{
[/color][color=#0000FF]public[/color]:
    [color=#008080]shape[/color]()[color=#800000]{}
    [/color]~[color=#008080]shape[/color]()[color=#800000]{}
    [/color][color=#0000FF]virtual float [/color][color=#008080]GetArea[/color]()[color=#800000]{[/color][color=#0000FF]return [/color]-[color=#8000C0]1[/color];[color=#800000]}
}[/color];
[color=#0000FF]class [/color]Rectangle:[color=#0000FF]public [/color]shape
[color=#800000]{
[/color][color=#0000FF]public[/color]:
    [color=#008080]Rectangle[/color]([color=#0000FF]int [/color]l,[color=#0000FF]int [/color]w)[color=#800000]{[/color]len=l;wid=w;[color=#800000]}[/color];
    ~[color=#008080]Rectangle[/color]()[color=#800000]{}[/color];
    [color=#0000FF]float [/color][color=#008080]GetArea[/color]()[color=#800000]{[/color][color=#0000FF]return [/color]len*wid;[color=#800000]}
[/color][color=#0000FF]private[/color]:
    [color=#0000FF]int [/color]wid;
    [color=#0000FF]int [/color]len;
[color=#800000]}[/color];
[color=#0000FF]int [/color][color=#FF0000]main[/color]()
[color=#800000]{
    [/color]shape *sp;
    sp = [color=#0000FF]new [/color][color=#008080]Rectangle[/color]([color=#8000C0]2[/color],[color=#8000C0]3[/color]);
    [color=#FF0000]cout[/color]<<[color=#FF00FF]"the area of the rectangle is"[/color]<<sp->[color=#008080]GetArea[/color]()<<[color=#FF0000]endl[/color];
    [color=#0000FF]delete [/color]sp;
    [color=#0000FF]return [/color][color=#8000C0]0[/color];
[color=#800000]}
[/color][/size][/font][/quote]
[\quote]

mqh21364 发表于 2008-6-18 11:00

楼上说的对,你没有有两个参数的构造函数啊 。

chuxuechengxu 发表于 2008-6-25 17:00

恩,谢谢

页: [1]

编程论坛