新手请问虚函数的定义的有关问题,多谢哈
新手请教虚函数的定义的问题,谢谢哈
我想定义一个纯虚类,它的子类都要自己实现add_up函数,add_up函数操作的参数类型是子类型本身,如下:
但这样编译不过。我尝试把参数类型改成普通的int型,则可以通过。
这种情况我应该怎么处理啊?谢谢哈
------解决方案--------------------
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就可以了
------解决方案--------------------
我想定义一个纯虚类,它的子类都要自己实现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就可以了
------解决方案--------------------