【问题标题】:Can derived class have a data member in abstract factory design pattern派生类可以在抽象工厂设计模式中具有数据成员吗
【发布时间】:2020-02-22 19:10:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ abstract-factory


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-06
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2011-05-11
      • 1970-01-01
      相关资源
      最近更新 更多