伊莉討論區

標題: c++ 類別問題 [打印本頁]

作者: tim861121    時間: 2019-1-12 03:15 PM     標題: 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;
}


作者: baepi    時間: 2019-1-12 11:55 PM

既然都繼承了....不是如下就可以了嗎?
  1. #include <iostream>
  2. using namespace std;
  3. class a {
  4. private:
  5.         int x = 0;
  6. public:
  7.         int t = 0;
  8.         int sum()
  9.         {
  10.                 t = 0;
  11.                 cout << "選擇完輸入-1" << endl << "1.小白菜 :20元" << endl;
  12.                 cout << "2.高麗菜:30元" << endl;
  13.                 cout << "3.番茄:40元" << endl;
  14.                 bool life_flag = true;
  15.                 while (life_flag)
  16.                 {
  17.                         cin >> x;
  18.                         switch (x)
  19.                         {
  20.                         case 1:
  21.                                 t += 20;
  22.                                 break;
  23.                         case 2:
  24.                                 t += 30;
  25.                                 break;
  26.                         case 3:
  27.                                 t += 40;
  28.                                 break;
  29.                         default:
  30.                                 life_flag = false;
  31.                                 break;
  32.                         }
  33.                 }
  34.                 cout << "總金額:" << t << endl;
  35.                 return 0;
  36.         }
  37. };
  38. class b :public a {
  39. private:
  40. public:
  41.         int rebate() {
  42.                 cout << "金額超過50元打5折" << endl;
  43.                 if (t >= 50)
  44.                 {
  45.                         t *= 0.5;
  46.                 }
  47.                 cout << "最後確認總金額:" << t << endl;
  48.                 return 0;
  49.         }
  50. };
  51. int main() {
  52.         b bsum;
  53.         bsum.sum();
  54.         bsum.rebate();
  55.         system("pause");
  56.         return 0;
  57. }
複製代碼

作者: liang628    時間: 2019-3-15 12:28 PM

在A類別中建立一個屬性名稱,把算好的值放入
b類別去繼承A類別就可以用A類別的屬性了
作者: z1090128    時間: 2019-4-25 10:09 PM

繼承應該是可以直接使用才對,但private好像不行??
作者: affkame    時間: 2019-6-5 04:36 PM

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (https://attach1201.eyny.com/) Powered by Discuz!