小编Eri*_*ric的帖子

您是否可以强制从抽象基类继承的类仅具有在基本情况下定义的公共方法?

是否有可能有一个抽象类,但FORCE实现类只有抽象类中的公共方法?

我不关心私有方法是如何工作的,但我想强制这些类只有一个公共方法.

例如,假设我有以下抽象类:

class MyObjectTransform
{
    public:
    virtual ~MyObjectTransform()
    {
    }

    virtual MyObject transform(MyObject input) = 0;
};
Run Code Online (Sandbox Code Playgroud)

然后我想强制所有继承自的对象MyObjectTransform只有一个(构造函数除外)公共方法,transform.我不关心继承类有哪些私有方法.这可能吗?

更新: 此处的目标是强制开发人员仅通过单个方法公开功能.例如,考虑这种情况:

class ATransform
{
private:
        MyObject A_Stuff(MyObject input);

public:
    override MyObject transform(MyObject input)
    {
        return this->A_stuff(input);
    }
};

class BTransform
{
public:
    MyObject B_Stuff(MyObject input);

    override MyObject transform(MyObject input)
    {
        return this->B_stuff(input);
    }
};
Run Code Online (Sandbox Code Playgroud)

这里的问题是开发人员可以B_Stuff直接调用.我想阻止这个.

c++ inheritance abstract-class c++11

0
推荐指数
1
解决办法
604
查看次数

标签 统计

abstract-class ×1

c++ ×1

c++11 ×1

inheritance ×1