【问题标题】:how to make an object of child class in parent class如何在父类中创建子类的对象
【发布时间】:2013-12-06 08:27:32
【问题描述】:

我正在用 C++ 编写一段代码,但真的无法解决一个问题,我试图在父类中创建一个子类的对象,但这给了我一个错误,我继承父类“未定义”基类”有什么出路吗?

#include "Item.h"
#include "Borrower.h"
#include "Librarian.h"
#include "Clerk.h"
class lib_management_system
{
protected:
    item *items_array;
    borrower *borrower_array;
    librarian *librarian_array;
    clerk *clerk_array;
    int items_count;
    int borrower_count;
    int clerk_count;
    int librarian_count;
//public members
};

其中 item、borrower、librarian 和 clerk 是这个父类的子类

【问题讨论】:

  • 感谢回复,将当前子类的对象放在另一个类中并从该类继承父类,可以吗
  • 请显示代码 sn-ps 试图解释你想要做什么。
  • 等等,你是说“项目”是一个 lib_management_system?职员是 lib_management_system 吗?或者您是否正在尝试制作 lib_management_system OWN A 项目?目前尚不清楚为什么您需要该项目等从 lib_management_system 继承....
  • 看,library_managment_system 拥有所有物品、借款人、图书馆员和一些功能,如 search_an_item。现在,如果借款人想要搜索项目,借款人是一个单独的类(其私有成员是 fname、lname)? ???所以这就是为什么我让借用者成为 library_management_system 的孩子。
  • 但这不是继承的工作方式。项目类,当它是一个孩子时,将有它自己的所有项目、借阅者、图书馆员和职员的。类的每个实例都有自己的东西。您可以通过将数据设为静态来使每个类仅存在一次数据,但这并不能使您提出的模式成为一个好的模式。我会重新考虑你的方法。

标签: c++ oop ooad


【解决方案1】:

这通常是糟糕设计的标志......

你唯一能做的,我什至建议反对这个,除非在某些资源管理情况下,也许):

// Forward declaration
class Child;

class Parent
{
 public:
  // Parent code
  // ...


  Child* _child;
};

class Child : public Parent
{
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2010-10-12
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多