抽象工厂设计模式中派生class可以有一个数据成员吗

Can derived class have a data member in abstract factory design pattern

我是 C++ 的新手,我有以下疑问。在抽象工厂模式中,可以派生class有自己的数据成员。例如,

class AbstractBaseclass
{
    public:
       virtual void somemethod() = 0;
}

class derived1: public AbstractBaseclass
{
    public:
        void somemethod()
        {
           .......
        }
}

class derived2: public AbstractBaseclass
{
    public:
        int dataMember;      ------------------> Is this correct?
        void somemethod()
        {
           .......
        }
}

class factory
{
    public:
        static AbstractBaseclass *createObject(int type)
        {
             <code to create object based on the passed type>
        }
}

我有很多派生的 classes。只是在这里提供布局。我的疑问是:class derived2 中是否可以有一个数据成员?并像下面那样访问它

 factory *fObj = new factory();
 AbstractBaseclass *baseObj = fObj->createObject(2);
 baseObj.dataMember = 3;

派生的 class 可以有方法或变量形式的附加成员。

至于通过指向您的基础的指针访问 dataMember class - 这是不允许的,因为 dataMember 变量不在您的基础范围内 class。