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

求教一道在链接时有有关问题的程序题,多谢

2012-02-09 
求教一道在链接时有问题的程序题,谢谢!/***********************************************************定

求教一道在链接时有问题的程序题,谢谢!


/***********************************************************
        定义一个计算基类,派生一个加法类,一个减法类
采用虚函数的方法实现多态。但是不知道为什么产生链接时错误。
大家帮我看看!谢谢!

***********************************************************/


#include <iostream>
#include <string>
using   namespace   std;

class   Counter
{
public:
void   Input(double   x,   double   y)
{
_x   =   x;
_y   =   y;
}
virtual   void   Count();
protected:
double   _x;
double   _y;
};

class   AddClass:public   Counter
{
public:
virtualvoid   Count()
{
double   z   =   0.0;
cout < <(z   =   _x   +   _y) < <endl;
}
};

class   SubClass:public   Counter
{
public:
virtualvoid   Count()
{
double   z   =   0.0;
cout < <(z   =   _x   -   _y) < <endl;
}
};

int   main(void)
{
double   x,y;
char   p;
cin> > x> > p> > y;
Counter   *ptr;
if(p== '+ ')   {
AddClass   add;
ptr   =   &add;
add.Input(x,y);
ptr-> Count();
}
else   if(p   ==   '- ')   {
SubClass   sub;
ptr   =   &sub;
sub.Input(x,y);
ptr-> Count();
}
else
cout < < "error! ";
return   0;
}

[解决办法]
class Counter
{
public:
void Input(double x, double y)
{
_x = x;
_y = y;
}
virtual void Count(); <====这一行改为virtual void Count()=0;或者virtual void Count(){};
protected:
double _x;
double _y;
};

[解决办法]
纯虚函数必须要在派生类中定义它的类实现,你那个是虚函数,不是纯虚函数,虚函数主要消除派生类中的二义性问题.............
[解决办法]
有虚函数的类在编译生成的目标文件里都有虚函数表,这个表的每一项要么是0要么指向某个函数定义,如果有一项不是空,那么最后连接的时候,该项的值就会联到相应函数的相对地址上,如果函数没有定义,自然就无法解析这项了

热点排行