新手请教虚函数的定义的问题,谢谢哈
我想定义一个纯虚类,它的子类都要自己实现add_up函数,add_up函数操作的参数类型是子类型本身,如下:
- C/C++ code
class DAT_BASE{public: long sum_num; virtual int add_up(DAT_BASE & v_a, DAT_BASE & v_b) = 0; virtual ~DAT_BASE(){};};class DAT_ITEM: public DAT_BASE{public: vector < double > dat; int add_up(DAT_ITEM & v_a, DAT_ITEM & v_b) {.....};};class DAT_RCD: public DAT_BASE{public: double dat; int add_up(DAT_RCD & v_a, DAT_RCD & v_b) {.....};};但这样编译不过。我尝试把参数类型改成普通的int型,则可以通过。
- C/C++ code
class DAT_BASE{public: long sum_num; virtual int add_up(int & v_a, int & v_b) = 0; virtual ~DAT_BASE(){};};class DAT_ITEM: public DAT_BASE{public: vector < double > dat; int add_up(int & v_a, int & v_b) {.....};};class DAT_RCD: public DAT_BASE{public: double dat; int add_up(int & v_a, int & v_b) {.....};};这种情况我应该怎么处理啊?谢谢哈
[解决办法]
int add_up(DAT_BASE & v_a, DAT_BASE & v_b) = 0;
int add_up(DAT_ITEM & v_a, DAT_ITEM & v_b);
int add_up(DAT_RCD & v_a, DAT_RCD & v_b);
看出来了视力不好,add_up没有在子类中实现
[解决办法]
[解决办法]
派生类的那两个函数的参数类型改成DAT_BASE & v_a就可以了
[解决办法]