【发布时间】:2014-01-12 06:55:52
【问题描述】:
我花了好几个小时在网上寻找,但没有人和我一样的问题。基本上,我有一个名为 MainShop 的基类,它有 3 个派生类,分别是 SwordShop、SpellBookShop 和 BowShop。我希望基类能够从派生类之一调用函数,但无论我做什么,它似乎都不起作用! 这是我的代码:
#include "MainShop.h"
//BaseClass cpp
void MainShop::EnterShop(Hero& hero)
{
//Display Choices
switch (choice)
{
//Swords
case 1: SwordShop::soldierShop(hero);//DOES NOT WORK!!
break;
case 2: SpellBookShop::MageShop(hero);//Staffs
break;
case 3: BowShop::ArcherShop(hero);//Bows
break;
default: cout << "Error!, Please try again.";
MainShop::EnterShop(hero);
}
}
我还有另外两个派生类,但它们的概念基本相同。我在其中一个派生类中有一个函数,我想从基类中调用它。这是我的派生类之一:
//SwordShop derived cpp
#include "SwordShop.h"
void SwordShop::soldierShop(Hero& hero)
{
/* some code here*/
}
【问题讨论】:
-
这就是虚函数的用途。
-
是的,持有一个指向基类的指针,然后调用
.shop() -
我认为您似乎采用结构化的 OO 方法进行构建非常棒,只要您觉得自己正在学习或朝着目标前进,您肯定应该继续沿着这条道路前进。然而,从长远来看,我的经验是继承和多态会导致程序不灵活和逻辑重复,尤其是当项目变得更大时。我有更紧凑、更敏捷的程序,具有类型特征和组合。诚然,进入的门槛更高,所以我说现在继续走这条路也不错。
标签: c++ class oop object inheritance