静态成员小练习1

目录

题目

分析

1.设计一个BankAccount类,模拟银行账户的基本操作。

2.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。

3.每个账户可以存取。

4.提供静态成员函数来查询总余额。

5.在构造函数和析构函数中更新总余额

6.创建主函数测试

7.结果

完整代码


题目

银行账户:设计一个BankAccount类,模拟银行账户的基本操作。

1.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。2.每个账户可以存取。3.提供静态成员函数来查询总余额。4.在构造函数和析构函数中更新总余额

分析

1.设计一个BankAccount类,模拟银行账户的基本操作。

首先,创建一个BankAccount类,用来模拟一些银行账户的存取操作。

 class BankAccount{};
2.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。

然后创建一个静态变量表示所有账户的总余额,由于是静态成员变量,所以需要在类内定义,类外初始化。

  static int Balance; // BankAccount类内
  int BankAccount::balance = 0; // BankAccount类外

每个账户对象都有自己的余额属性,我们再创建一个普通的成员对象

  int My_Balance;
3.每个账户可以存取。

创建出存钱和取钱的成员函数

  // 存钱
  void Save_Money(int money)
  {
      if (money > 0)
      {
          My_Balance += money;
          Balance += money;
      }
      else
      {
          cout << "-------------存钱失败-------------" << endl;
      }
  }
// 取钱
  void Withdraw_Money(int money)
  {
      if (money > 0 && My_Balance >= money)
      {
          My_Balance -= money;
          Balance -= money;
      }
      else
      {
          cout << "-------------取钱失败-------------" << endl;
      }
  }
4.提供静态成员函数来查询总余额。

创建静态成员函数,返回Balance值

static int getBalance() //获取总余额
  {
      return Balance;
  }

创建普通成员变量,返回My_Balance值

int getMy_Balance() //获取个人的余额
  {
      return My_Balance;
  }
5.在构造函数和析构函数中更新总余额

我们使用构造函数在创建对象时,可以确定用户已有的余额

 BankAccount() : My_Balance(0){}; // 在创建账户时不存钱
  BankAccount(int money) : My_Balance(money) // 在创建账户时存钱,并更新总余额Balance
  { 
      Balance += money;
  };

在对象被销毁时,更新总余额

 ~BankAccount()
  {
      if (My_Balance > 0) Balance -= My_Balance;
  }
6.创建主函数测试
  int main()
  {
      BankAccount a(1000), b(2500), c(3500), d;
      cout << "总余额为: " << BankAccount::getBalance() << endl;
      a.getBalance(); 
      a.getMyBalance();
  ​
      b.Withdraw_Money(500);
      cout << "总余额为: " << BankAccount::getBalance() << endl;
  ​
      c.Save_Money(10000);
      cout << "总余额为: " << BankAccount::getBalance() << endl;
  }
7.结果
  总余额为: 7000
  总余额为: 6500
  总余额为: 16500
完整代码
#include<iostream>
  using namespace std;
  ​
  ​
  ​
  /*
      银行账户:
      设计一个BankAccount类,模拟银行账户的基本操作。
  ​
      1.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。
      2.每个账户可以存取。
      3.提供静态成员函数来查询总余额。
      4.在构造函数和析构函数中更新总余额
  */
  ​
  class BankAccount
  {
      static int Balance; // 总余额
      int My_Balance;
  public:
      BankAccount() :My_Balance(0) {}  //创建账户时不存钱
  ​
      BankAccount(int money) :My_Balance(money) //创建账户时存钱
      {
          Balance += money;
      }
  ​
      ~BankAccount()  //销毁账户
      {
          if (My_Balance > 0) Balance -= My_Balance;
      }
  ​
      static int getBalance() //获取总余额
      {
          return Balance;
      }
  ​
      int getMyBalance() //获取个人余额
      {
          return My_Balance;
      }
  ​
      void Save_Money(int money)
      {
          if (money > 0)
          {
              My_Balance += money;
              Balance += money;
          }
          else
          {
              cout << "-------------存钱失败-------------" << endl;
          }
      }
  ​
      void Withdraw_Money(int money)
      {
          if (money > 0 && My_Balance >= money)
          {
              My_Balance -= money;
              Balance -= money;
          }
          else
          {
              cout << "-------------取钱失败-------------" << endl;
          }
      }
  ​
  };
  int BankAccount::Balance = 0;
  int main()
  {
      BankAccount a(1000), b(2500), c(3500), d;
      cout << "总余额为: " << BankAccount::getBalance() << endl;
      a.getBalance();
      a.getMyBalance();
  ​
      b.Withdraw_Money(500);
      cout << "总余额为: " << BankAccount::getBalance() << endl;
  ​
      c.Save_Money(10000);
      cout << "总余额为: " << BankAccount::getBalance() << endl;
  }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值