[问题] C++ 关于物件问题

楼主: cleveland32 (J shuttlesworth)   2018-12-14 20:00:14
开发平台(Platform): (Ex: Win10, Linux, ...)
Win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Visual C++
目前我在练习C++物件这方面遇到ㄧ些小问题想请教大家
以下是我的原程式码
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class grade
{
private:
int m_data[5];
public:
void set_grade(int m[5])
{
m[0]=10;
m[1]=20;
m[2]=30;
m[3]=40;
m[4]=50;
int i;
for (i=0;i<=4;i++)
{
m[i]=m_data[i];
//cin >> m[i];
}
}
int average()
{
return (m_data[0]+m_data[1]+m_data[2]+m_data[3]+m_data[4])/5;
}
void show_average()
{
cout << "五科平均=" << average() << endl;
}
};
void fun2()
{
cout << "请输入五科成绩" << endl;
grade x;
x.show_average();
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
这个问题主要是要用物件的方式设定五个成绩
且限制成绩必须为private
并且计算平均总分等等...
因为我目前问题卡著所以先假设五科成绩初始值已知
现在执行完结果后平均显示=0
我在猜想是我的fun2函数中的物件x没给他值
但我怎么设都会语法错误
或是我在其他地方也有错误才导致执行结果不对
再麻烦各位了谢谢 刚学物件这个东西觉得好乱ORZ
作者: nh60211as   2018-12-14 20:18:00
你是不是没call set_gradehttps://goo.gl/iT9nzV 刚刚写的code看看吧,有问题再
楼主: cleveland32 (J shuttlesworth)   2018-12-14 21:17:00
感谢楼上 我理解一下
作者: jerryh001   2018-12-15 01:17:00
你set的循环里面写反了啊…
作者: ultradev (QQ)   2018-12-15 04:49:00
没call set_grade,所以x里不会有值,但是因为你要先把值写死,不会输入,所以也不能call set_grade,要先写默认值的话在constructor里面设定五个m_data的值就可以了另外就是楼上说的,循环里是m_data[i] = m[i]才对,你写反了
楼主: cleveland32 (J shuttlesworth)   2018-12-15 13:53:00
谢楼上两位 我懂了!
作者: x246libra (楓)   2018-12-15 20:59:00
https://bit.ly/2LnoyAs 用建构子 constructor
楼主: cleveland32 (J shuttlesworth)   2018-12-15 21:50:00
谢谢楼上补充资讯!我来爬个文

Links booklink

Contact Us: admin [ a t ] ucptt.com