首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎的访问数组成员的成员?数组[i].成员的成员 不对吗

2012-12-23 
怎样访问数组成员的成员?数组[i].成员的成员 不对吗?class JG{public:JG(){}~JG(){}CString SHENCStrin

怎样访问数组成员的成员?数组[i].成员的成员 不对吗?

class JG{
public:
JG(){};
~JG(){};
CString SHEN;
CString XING;
CString MEN;
CString TP;
CString DP;
int Gnum;
};

JG Kan;
JG Kun;
JG Zhen;
JG Xun,Zh,Qian,Dui,Gen,Li;//
//初始化
//Kan.Gnum=1
//,Kun.Gnum=2,Zhen.Gnum=3,Xun.Gnum=4,Zh.Gnum=5,Qian.Gnum=6,Dui.Gnum=7,Gen.Gnum=8,Li.Gnum=9;
JG jg[9]={Kan,Kun,Zhen,Xun,Zh,Qian,Dui,Gen,Li};//为了便于赋值,把变量放到一个数组

JG FX(CString Xing)//根据内容查询所在数组中的变量
{
for (int i=0;i<9;++i)
{
MessageBox(NULL,jg[i].XING,Xing,MB_OK);
if(jg[i].XING==Xing)
    {  
   MessageBox(NULL,jg[i].XING,Xing,MB_OK);
   return jg[i];//如果满足jg[i].XING==Xing条件,返回数组中指定的变量
}
}
}
//当我调FX函数时。。。jg[i].XING的内容为空!!不知道为什么
//赋初值
        Kan.XING="KAN";
Kan.MEN="xiu";
Kun.XING="KUN";
Zhen.XING="ZHE";
Xun.XING="XUN";
Qian.XING="QIA";
Dui.XING="DUI";
Gen.XING="GEN";
Li.XING="LI";
//调用查询
FX("KAN");
有点搞不明白了,请高手指教一下!谢谢!
[最优解释]
是你的数组没有初始化,试试


JG Kan;
JG Kun;
JG Zhen;
JG Xun,Zh,Qian,Dui,Gen,Li;//
//赋初值
Kan.XING="KAN";
Kan.MEN="xiu";
Kun.XING="KUN";
Zhen.XING="ZHE";
Xun.XING="XUN";
Qian.XING="QIA";
Dui.XING="DUI";
Gen.XING="GEN";
Li.XING="LI";
JG jg[9]={Kan,Kun,Zhen,Xun,Zh,Qian,Dui,Gen,Li};//为了便于赋值,把变量放到一个数组


[其他解释]
引用:
是你的数组没有初始化,试试
C/C++ code??12345678910111213141516JG Kan;JG Kun;JG Zhen;JG Xun,Zh,Qian,Dui,Gen,Li;////赋初值Kan.XING="KAN";Kan.MEN="xiu";Kun.XING="KUN";Zhen.XING="ZHE";Xun.XING="XUN";Qian.XI……

谢谢您的答复,请问我的jg是用的全局变量,在main函数中初始化的,不可以吗?
为什么一定要这样初始化呢?
我一定要用全局变量呢?该如何处理?
我不明白,请您指教,谢谢!
[其他解释]
你开始声明的那组变量
JG Kan;
JG Kun;
JG Zhen;
JG Xun,Zh,Qian,Dui,Gen,Li;//
与数组中的成员变量并不是同一组变量,

并不像你说的那样是把变量放入数组中

你这种写法只是用这组变量初始化数组,

所以要在初始化数组之前给变量赋值
[其他解释]
引用:
你开始声明的那组变量
JG Kan;
JG Kun;
JG Zhen;
JG Xun,Zh,Qian,Dui,Gen,Li;//
与数组中的成员变量并不是同一组变量,

并不像你说的那样是把变量放入数组中

你这种写法只是用这组变量初始化数组,

所以要在初始化数组之前给变量赋值

谢谢!

[其他解释]
我现在写了这样一个循环要给数组成员的成员赋值,为什么不行呢?
.........
JG jg[9]={Kan,Kun,Zhen,Xun,Zh,Qian,Dui,Gen,Li};//为了便于赋值,把九宫内容放到一个数组

//赋寄宫的
Kun.JDP=Zh.DP;

for (int i=0;i<9;++i)
{
//MessageBox(NULL,jg[i].TP,TPG,MB_OK);
if(jg[i].TP==Kun.DP)//i=3是条件成立,去jg中的Xun
{  
(jg[i]).JTP=Zh.DP;//为什么没有辅导数组的Xun的JTP变量里面呢?
//MessageBox(NULL,jg[i].JTP,Xun.JTP,MB_OK);
assert(jg[i].JTP!="");
         //编译通过但是数组成员Xun.JTP没有被赋值,不知道怎么回事!
}
}
百思不得其解!!请指教!谢谢!

热点排行