gpt4 book ai didi

c++ - 关于声明成员函数

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:38 25 4
gpt4 key购买 nike

<分区>

我有一个抽象基类。

我有一堆成员函数,它们既不是私有(private)的也不是静态的也不是模板,只是普通的公共(public)成员函数。

而且我注意到我必须定义所有这些*在其他函数的定义中被调用的公共(public)正常函数,即使这些函数不是由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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com