[問題] 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