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

关于虚函数的编译异常

2012-05-29 
关于虚函数的编译错误,请教大家C/C++ code#includeiostream.h//Shapeclass Shape{public:virtual void c

关于虚函数的编译错误,请教大家

C/C++ code
#include<iostream.h>//Shapeclass Shape{public:    virtual void calculate_area() ;    virtual void display_area() const =0;    virtual ~Shape(){};};//Circleclass Circle:public Shape{public:    Circle(float r1=0,float area_circle1=0):r(r1),area_circle(area_circle1){};    void calculate_area() ;    void display_area() const ;    friend istream& operator >>(istream&,Circle&);private:    float r;    float area_circle;};void Circle::calculate_area(){    area_circle=3.14*r*r;};void Circle::display_area() const {    cout <<"r:" <<r <<"; area:" <<area_circle <<endl;};istream& operator >>(istream &input,Circle &circle){    cout <<"r:";    input >>circle.r;    return input;};//main functionint main(){    Shape *p=NULL;    Circle circle;    cin>>circle;    p=&circle;    p->calculate_area();    p->display_area();    return 0;}

想问下这个程序错在哪里,找了很久不知道,请教大侠,

[解决办法]
class Shape
{
public:
virtual void calculate_area(){} ;
[解决办法]
探讨

class Shape
{
public:
virtual void calculate_area(){} ;

[解决办法]
C/C++ code
#include <iostream>using namespace std;//Shapeclass Shape{public:    virtual void calculate_area(){;} ;    virtual void display_area() const {;};    virtual ~Shape(){;};};//Circleclass Circle:public Shape{public:    Circle(float r1=0,float area_circle1=0):r(r1),area_circle(area_circle1){};    void calculate_area() ;    void display_area() const ;    friend istream& operator >>(istream&,Circle&);private:    float r;    float area_circle;};void Circle::calculate_area(){    area_circle=3.14*r*r;};void Circle::display_area() const{    cout <<"r:" <<r <<"; area:" <<area_circle <<endl;};istream& operator >>(istream &input,Circle &circle){    cout <<"r:";    input >>circle.r;    return input;};//main functionint main(){    Shape *p=NULL;    Circle circle;    cin>>circle;    p=&circle;    p->calculate_area();    p->display_area();    return 0;}
[解决办法]
C/C++ code
//Shapeclass Shape{public:    // virtual void calculate_area() ; 这个仅有声明,木有实现,同时它又不是纯虚函数,故而错    virtual void calculate_area() = 0;  // 可以将上面的一句改为这一句    virtual void display_area() const =0;    virtual ~Shape(){};}; 

热点排行