我有一個抽象基類。關於聲明成員函數
我有一堆成員函數,它不是私有的,也不是靜態的,也不是模板,只是普通的公共成員函數。
而且我注意到,我有定義任何*被稱爲在其他功能定義即使這些功能都沒有被主任何代碼運行這些市民的正常功能。
什麼叫我更關注的是,在任何情況下,如果是抽象類,所以實際上應該是如果類本身是不會被實例化任何方式強行定義的任何功能?
這是我在這裏發佈的第一個問題,很抱歉,如果我不是很好地解釋自己或做錯了什麼。
在此先感謝您的幫助!
下面是類的縮短版我說的:
#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
恐怕你的問題是很難理解,尤其是部分「我定義任何所調用的其他函數的定義,這些市民的正常功能。」請重新說明這一點。 – SirDarius 2012-08-04 13:06:51
你能展示一些代碼來展示你的意思嗎? – 2012-08-04 13:07:36