頁:
[1]
c++ 類別問題
本帖最後由 tim861121 於 2019-1-12 03:16 PM 編輯題目是 A類別計算金錢 B類別金錢到達即可優惠折扣
該如何把A算的值用在B類別裡面
#include <iostream>
using namespace std;
class a {
private:
int x=0;
public:
int t = 0;
int sum() {
cout << "選擇完輸入-1" << endl<<"1.小白菜 :20元" << endl;
cout << "2.高麗菜:30元" << endl; cout << "3.番茄:40元"<<endl; while (1) {
cin >> x;
if (x == -1) {
break;
}if (x == 1) {
t+=20;
}if (x == 2) {
t+=30;
}if (x == 3) {
t+=40;
}
}
cout << "總金額:" << t << endl;
return 0;
}
};
class b :public a{
private:
public:
int rebate() {
cout << "金額超過50元打5折" << endl;
if (t == 50) {
t*0.5;
}
return 0;
}
};
int main() {
a asum;
asum.sum();
b bsum;
bsum.rebate();
return 0;
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 既然都繼承了....不是如下就可以了嗎?#include <iostream>
using namespace std;
class a {
private:
int x = 0;
public:
int t = 0;
int sum()
{
t = 0;
cout << "選擇完輸入-1" << endl << "1.小白菜 :20元" << endl;
cout << "2.高麗菜:30元" << endl;
cout << "3.番茄:40元" << endl;
bool life_flag = true;
while (life_flag)
{
cin >> x;
switch (x)
{
case 1:
t += 20;
break;
case 2:
t += 30;
break;
case 3:
t += 40;
break;
default:
life_flag = false;
break;
}
}
cout << "總金額:" << t << endl;
return 0;
}
};
class b :public a {
private:
public:
int rebate() {
cout << "金額超過50元打5折" << endl;
if (t >= 50)
{
t *= 0.5;
}
cout << "最後確認總金額:" << t << endl;
return 0;
}
};
int main() {
b bsum;
bsum.sum();
bsum.rebate();
system("pause");
return 0;
}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 在A類別中建立一個屬性名稱,把算好的值放入
b類別去繼承A類別就可以用A類別的屬性了 繼承應該是可以直接使用才對,但private好像不行?? 如果沒要overwrite 在a class 開一個public api把a.x的數值傳出來如何?<br><br><br><br><br><div></div>
頁:
[1]