




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 VC 讨论课总结 第一组小组成员 2 银行卡 数据成员 姓名账号密码钱数 提款机 成员函数 欢迎界面存取款查询余额退卡 3 将银行卡 数据成员 与提款机 成员函数 放在一个类中 命名为ATMATM类可以实现用户与自动取款机的交互 即完成取款 查询余额等功能在类中全部数据成员均为私有成员 类中的成员函数均为公有成员 为实现各种操作提供接口 4 银行卡 数据成员 姓名name账号account密码password钱数money 提款机 成员函数 欢迎界面输出 欢迎您 XXX 取款实现对money的访问与修改查询余额对money的访问退卡 谢谢使用 再见 5 利用string定义可以省去定义一维字符数组的不便stringname stringaccount stringpassword intmoney 定义姓名 定义账号 定义密码 定义余额 数据成员 6 成员函数 voidwelcome cout 欢迎您 name endl voidtakemoney cout a if money a 0 cout 余额不足 取款失败 endl else money a cout 取款成功 n 欢迎界面 取款 7 查询余额 voidrestmoney cout 当前余额为 money endl 退卡 voidbye cout 感谢您的使用 再见 endl 8 使用If实现验证账号与密码是否匹配 stringshowaccount return account stringshowpassword return password stringaccount2 password2 if account2 a showaccount p 9 10 MFC界面初步设计 登陆界面2 选择界面3 退卡界面 11 登陆界面 12 登陆界面退卡界面 13 1 现实世界中卡和银行卡的继承关系2 用面向对象编程思想中的派生类来模拟卡和银行卡的继承关系3 银行卡派生类的构造函数和析构函数的定义4 银行卡派生类的构造函数和析构函数的执行顺序 14 1 现实世界中卡和银行卡的继承关系 现实世界中 银行卡 会员卡等卡类 他们的共同特点是具有开户人 账号以及密码的属性 而银行卡除了向卡类继承了这些之外 还具有金额的属性 姓名 账号 密码 卡 银行卡 姓名 账号 密码 金钱 15 classbankcard publiccard intmoney 定义金钱public bankcard stringn stringa stringp intm 2 用面向对象编程思想中的派生类来模拟卡和银行卡的继承关系 classcard protected stringname 定义姓名stringaccount 定义账号stringpassword 定义密码public card stringn stringa stringp voidmodifypsw 用于修改密码 Bankcard类即银行卡类 公有继承了卡类的数据成员和成员函数 由于私有成员是不允许继承的 而公有成员无法实现类中数据的封装 因此将卡类中的三个数据成员都定义为保护属性 16 3 银行卡派生类的构造函数和析构函数的定义 classcard protected stringname stringaccount stringpassword public card stringn stringa stringp voidmodifypsw card card stringn stringa stringp name n 将n赋值给姓名account a 将a赋值给账号password p 将p赋值给密码 classbankcard publiccard intmoney public bankcard stringn stringa stringp intm bankcard bankcard stringn stringa stringp intm card n a p money m 将m赋值给金钱 在bankcard的构造函数中利用初始化列表调用card类的构造函数 完成了传递参数的工作 17 析构函数没有参数 因此可以选择使用系统默认的析构函数 在执行派生类bankcard的析构函数时 系统会自动调用基类card的析构函数 对基类card的对象进行清理 由于在与ATM的交互中需要不断调用带有bankcard对象类型的函数 因此总有形参在不断消亡 因此也就不断调用析构函数 18 intmain bankcardb 张三 001 123456 10000 return0 举个例子 在执行该语句后 bankcard类中的b对象被初始化 调用了构造函数 即其name为张三 account为001 password为123456 金钱为10000 在主函数返回0时 系统就会自动调用bankcard与card中的析构函数将对象进行清理 b也就不复存在了 19 4 银行卡派生类的构造函数和析构函数的执行顺序 先执行基类card的构造函数 再执行派生类bankcard的构造函数析构函数执行顺序与其相反 先执行bankcard的析构函数 再执行card的析构函数 20 classcard protected stringname stringaccount stringpassword public card stringn stringa stringp voidmodifypsw card card stringn stringa stringp name n 将n赋值给姓名account a 将a赋值给账号password p 将p赋值给密码cout card构造函数被调用 endl card cout card析构函数被调用 endl 21 classbankcard publiccard intmoney public bankcard stringn stringa stringp intm bankcard bankcard stringn stringa stringp intm card n a p money m 将m赋值给金钱cout bankcard构造函数被调用 endl bankcard cout bankcard析构函数被调用 endl intmain bankcardb 张三 001 123456 10000 return0 22 1 如何利用运算符重载实现银行卡存款的增减 运算符重载函数分为 1 类外定义的运算符重载函数2 友元运算符重载函数3 成员运算符重载函数在之前的讨论课中我们将ATM类声明为bankcard类的友元类 因此 利用运算符重载实现银行卡存款的增减时我们使用友元运算符重载函数 23 bankcardoperator intm money m return this voidATM takemoney bankcard 24 2 如何利用函数重载实现银行卡的编译时多态 函数重载包括普通成员函数重载和构造函数重载 也包括运算符重载 但是析构函数不能被重载 25 User构造函数被重载 1 构造函数重载 26 2 成员函数重载成员函数重载原理与构造函数相同 即被重载的函数为普通的成员函数 函数名与类名不同 27 3 如何设计卡类和银行卡类的虚函数GetCardNumber 实现运行时多态 虚函数就是在基类中被关键字virtual说明 并在派生类中重新定义的函数 虚函数的作用是允许在派生类中重新定义与基类同名的函数 并且可以通过基类指针或引用来访问基类和派生类中的同名函数 28 Virtual函数类型函数名 形参表 函数体 在基类中的某个成员被声明为虚函数后 此虚函数就可以在一个或多个派生类中被重新定义 其函数原型 包括函数类型 函数名 参数个数 参数类型的顺序 都必须与基类中的原型完全相同 29 virtualvoidcard GetCardNumber cout 卡号为 account endl virtualvoidbankcard GetBankcardNumber cout 银行卡号为 account endl 30 可以看到 基类的指针对象成员ptr在指向其基类card时调用的是card类中的GetCardNumber 输出卡号 而指向其派生类bankcard时调用的是bankcard中的GetCardNumber 输出银行卡号 31 MFC系统 32 登陆界面 33 登
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 布病防培训课件
- 2025年特种作业类特种设备作业-溶解乙炔气瓶充装P3参考题库含答案解析
- 2025年特种作业类危险化学品安全作业胺基化工艺作业-氯碱电解工艺作业参考题库含答案解析
- 2024-2025学年高一下学期化学期中模拟卷一含答案解析
- 2025年特种作业类危险化学品安全作业氟化工艺作业-裂解(裂化)工艺作业参考题库含答案解析
- 布施健康知识培训内容课件
- 南和五年级期末数学试卷
- 乐清乐成一中数学试卷
- 南宁重点小升初数学试卷
- 2025年学历类自考公共课计算机应用基础-英语(二)参考题库含答案解析
- 注重整体强化联系提高质量(西南师大李忠如)
- NB-T 33025-2020 电动汽车快速更换电池箱通.用要求
- JT-T-864-2013吸油拖栏行业标准
- 广东省深圳市2022-2023学年八年级下学期英语期末试卷(含答案)
- DB32-T 1510-2015升降作业平台检验规则
- 知识题库-人社劳动知识竞赛测试题及答案(十三)
- 读书分享交流《爱心与教育》课件
- 新手直播方案
- 消毒隔离技术
- 符合RBT214-2017防雷装置检测机构质量手册+检测作业指导书2021首版
- 6S证据资源金字塔模型
评论
0/150
提交评论