c++简单的类问题

galuodo 2009-05-01 11:01:26
用C++
定义了一个招式的类SKILL
又派生了一个任务的类man
发现一个人只能有一个招式
有什么方法可以使每一个人有若干个招式,而其各异增减呢
...全文
139 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
galuodo 2009-05-02
  • 打赏
  • 举报
回复
谢谢ls
Paradin 2009-05-02
  • 打赏
  • 举报
回复
顶ls
光宇广贞 2009-05-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 galuodo 的回复:]
我们c++让自学,所以很多都不清楚...
ls能不能把 对像的列表 解释一下啊??

[/Quote]

给你一个基本的架构吧,真是不能再往下提示了,否则等于你的项目交给我做了。

class SkillBase
{
public:
virtual void DoSkill() = 0;
}

class Skill : SkillBase
{
public:
virtual void DoSkill()
{
// Do your Skill
}
}

class ManBase
{
protected:
SkillBase _MySkills[]; // Skill 列表

public:
virtual void AddSkill(SkillBase skill) = 0;
virtual void RemoveSkill (SkillBase skill) = 0;

virtual void ShowMySkill() = 0;

public:
ManBase();
virtual ~ManBase();
}

class Man : ManBase
{
public:
Man() : ManBase()
{
_MySkills = new SkillBase[MAX_SKILLS_NUM];
}

virtual ~Man()
{
delete[] _MySkills;
}

public:
void ShowMySkill()
{
// 遍历列表
}

// ADD 和 REMOVE 方法
}
galuodo 2009-05-02
  • 打赏
  • 举报
回复
不是做游戏...是作业要做一个角色管理系统...
mengde007 2009-05-02
  • 打赏
  • 举报
回复
使用抽象基类;声明出招式这个函数;然后派生就行了;在派生类里面将那个函数表达出不同的意思;
飞翔的阿狸 2009-05-02
  • 打赏
  • 举报
回复
楼主先把C++的基础打好,再考虑怎么做游戏吧。
你问的问题跨度太大,就跟建空中楼阁是一个道理。
galuodo 2009-05-02
  • 打赏
  • 举报
回复
我们c++让自学,所以很多都不清楚...
ls能不能把 对像的列表 解释一下啊??
galuodo 2009-05-02
  • 打赏
  • 举报
回复
本人比较本,能不能给个网址啥的学习学习,谢谢啦
光宇广贞 2009-05-02
  • 打赏
  • 举报
回复
让 man 类的对像维护一个自己的 skill 对像的列表。然后操作这个列表就完了。

就是这么简单的事儿。

没有网站会讲这个事儿。

有的话,你需要找的是设计模式。

但设计模式对于你当前的问题是牛刀杀鸡……
windsting 2009-05-01
  • 打赏
  • 举报
回复
如果你用的是public继承,你的SKILL和man的关系应该是:
"man是一种特殊的SKILL",但实际上这个关系应该是不成立的,
按照你的要求,他们的关系应该是:
"man里面有一些SKILL,这些SKILL可以具有不同的属性",
很明显,你这种需求应该让SKILL的对象(可以是一个列表)成为man的data member。
npuhuxl 2009-05-01
  • 打赏
  • 举报
回复
可以不是继承,而是维护一个Skill对象列表,
再可以将这个维护工作抽象出一个类

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧