我有一个抽象基类。
我有一堆成员函数,它们不是私有的,也不是静态的,也不是模板,只是普通的公共成员函数。
而且我注意到我必须定义在其他函数的定义中被调用的任何这些公共普通函数,即使这些函数没有由 main 中的任何代码运行。
更让我注意的是,无论如何,如果类是抽象的,如果类本身不会以任何方式实例化,为什么实际上应该强制定义任何函数?
这是我在这里发布的第一个问题,如果我没有很好地解释自己或做错了什么,很抱歉。
在此先感谢您的帮助!
这是我正在谈论的课程的缩短版本:
#ifndef PROCESS_H_INCLUDED
#define PROCESS_H_INCLUDED
#include <iostream>
#include <memory>
using std::weak_ptr;
using std::shared_ptr;
class Process;
typedef shared_ptr<Process> shProcess;
typedef weak_ptr<Process> wProcess;
class Process
{
friend class ProcessManager;
public:
inline void AttachChild(shProcess shChild);
/*
FOR EXAMPLE I CAN LEFT THE FUNCTION ABOVE WITHOUT BEING DEFINE, BUT I HAVE
TO DEFINE THE FUNCTION BELOW OR I GET A COMPILER ERROR
COULD IT BE BECAUSE EVEN IF THIS CLASS IS ABSTRACT I AM USING IT AS A
PARAMETER OF OTHER FUNCTIONS FOR POLIMORPHIC PURPOSES?
*/
shProcess RemoveChild(void){return shProcess();}//reliases ownership of the child
shProcess PeekChild(void){return m_shChild;} //doesn´t release ownership of the child
};
#endif //PROCESS_H_INCLUDED