派生类是否可以在抽象工厂设计模式中具有数据成员

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

本文关键字:设计模式 数据成员 工厂 抽象 是否 派生      更新时间:2023-10-16

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

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>
}
}

在我的案例中,我有许多派生类。只是在这里提供布局。我的疑问是:类derived2中是否可能有一个数据成员?并像低于一样处理它

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

派生类可以以方法或变量的形式具有其他成员。

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