通过参数改变结构体内的变量

bearxiongying 2010-01-18 10:05:06
我定义了一个结构
typedef struct _CARD
{
int hp;
int mp;
...
}
然后读取数据库的一个字段 比如存着 "hp+10"

然后根据意思 当然知道是要给这结构的的 hp变量 加上10
但是我代码里该如何做呢
因为变量比较多 ,不想写过多的 switch case
...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JamesLiu 2010-01-25
  • 打赏
  • 举报
回复
用数组就可以了,通过索引来判断,基本上我都是用数组来代替switch……catch
bearxiongying 2010-01-19
  • 打赏
  • 举报
回复
4楼的主意不错,至少switch写在结构体内,能让我代码看起来舒服些 呵呵
aoyihuashao 2010-01-19
  • 打赏
  • 举报
回复
而且C++已经不推荐用结构体了,直接用类就更加方便了。
aoyihuashao 2010-01-19
  • 打赏
  • 举报
回复
c++的结构体是可以写方法的嘛。
typedef struct _CARD
{
int hp;
int mp;
void add(CString type; int num)
{
if(type.Compare("mp"))
hp+=num;
if(type.Compare("hp"))
mp+=num;
}
}
lingling1989r 2010-01-19
  • 打赏
  • 举报
回复


1,定义:map<String,int> MyMap={"hp",0,"mp",1...}
2,读取数据库截取+号前
3,要都是Int类型的,结构体偏移你map里相对应的变量修改值。
lingling1989r 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aoyihuashao 的回复:]
c++的结构体是可以写方法的嘛。
typedef struct _CARD
{
  int hp;
  int mp;
  void add(CString type; int num)
{
if(type.Compare("mp"))
      hp+=num;
if(type.Compare("hp"))
      mp+=num;
}
}
[/Quote]

那还不如swith呢。。
不动如岳 2010-01-18
  • 打赏
  • 举报
回复
有没有规律,没有的话,就很难搞。如果都是
"变量 运算符 值"的话,自己做个分析的函数,把变量、运算符啥的,都拆分出来。

这个switch,不可避免吧,最起码,你得把分析出来的变量字符串,对应到相应的变量名称上。
  • 打赏
  • 举报
回复
自己写一个映射表

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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