c++:数组赋值不成功,为什么?

#include<iostream>usingnamespacestd;classCMoney{private:intm_nYuan,m_nJiao,m_nFen;pub... #include<iostream>
using namespace std;

class CMoney
{
private:
int m_nYuan,m_nJiao,m_nFen;
public:
CMoney(int Yuan=0,int Jiao=0,int Fen=0)
{
m_nYuan=Yuan;
m_nJiao=Jiao;
m_nFen =Fen ;
}
CMoney(CMoney &p);
~CMoney()
{
cout<<"析构函数被调用"<<endl;
cout<<GetYuan()<<'\t'<<GetJiao()<<'\t'<<GetFen()<<endl;
}
void SetValue()
{
if(m_nFen>9){
m_nJiao+=m_nFen/10;
m_nFen=m_nFen%10;
}
if(m_nJiao>9){
m_nYuan+=m_nJiao/10;
m_nJiao=m_nJiao%10;
}
}
int GetYuan(){return m_nYuan;}
int GetJiao(){return m_nJiao;}
int GetFen (){return m_nFen; }
void Show()
{
cout<<GetYuan()<<'\t'<<GetJiao()<<'\t'<<GetFen()<<endl;
}
};
CMoney::CMoney(CMoney &p)
{
m_nYuan = p.m_nYuan;
m_nJiao = p.m_nJiao;
m_nFen = p.m_nFen;
cout<<"拷贝构造函数被调用"<<endl;
cout<<GetYuan()<<'\t'<<GetJiao()<<'\t'<<GetFen()<<endl;

}
int main()
{
cout<<"无参构造函数被调用"<<endl;
CMoney m[10];
m[0].Show();
int y[10],j[10],f[10],i;

for(i=1;i<10;i++)
{
cout<<"请输入元、角、分:";
cin>>y[i]>>j[i]>>f[i]; //没有成功赋值,为什么?
m[i].SetValue();
m[i].Show();
CMoney *cm = new CMoney(*m);
}
return 0;
}
展开
 我来答
garfieldonly
2015-04-08 · TA获得超过335个赞
知道小有建树答主
回答量:279
采纳率:66%
帮助的人:117万
展开全部
首先,数组地址从0开始
其次
你传入的y[i] J[I] f[i]实际上是一个int类型的参数,你应该传入的是一个指针或者引用

应该是cin>>&y[i]>>$j[i]>>&f[i];
或者是cin>>y+i>>j+i>>f+i;
更多追问追答
追问
并不能运行。。。
追答
报什么错啊
匿名用户
2015-04-08
展开全部
数组下标从0开始所以循环应该从0开始for(i=1;i<10;i++)//for(i=0;i<10;i++)
追问
m[0]在前面已经用过了啊,作为默认构造函数
追答
m[0]是m[0],y,j,f数组是从0开始的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式