抽象工厂设计模式中派生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。
我是 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。