C++面向对象程序设计第七章(2)
C++面向对象程序设计
1 2 3 4 5 6 7 8 9
// Fig. 13.3: BasePlusCommissionEmployee.h // BasePlusCommissionEmployee class derived from class // CommissionEmployee. #ifndef BASEPLUS_H #define BASEPLUS_H #include <string> // C++ standard string class std::string; using std::string;
Outline
BasePlus Commission Employee.h
10 #include "CommissionEmployee.h" // CommissionEmployee class declaration 11 12 class BasePlusCommissionEmployee : public CommissionEmployee 13 { 14 public: public: 15 16 17 18 19 20 21 22 24 26 27 #endif const; double earnings() const; // calculate earnings const; void print() const; // print BasePlusCommissionEmployee object double baseSalary; // base salary void setBaseSalary( double ); // set base salary const; double getBaseSalary() const; // return base salary BasePlusCommissionEmployee( const string &, const string &, 0.0, 0.0, const string &, double = 0.0, double = 0.0, double = 0.0 );
(1 of 1)
23 private: private: 25 }; // end class BasePlusCommissionEmployee
C++面向对象程序设计
1 2 3 4 5 6 7 8
// Fig. 13.4: BasePlusCommissionEmployee.cpp member// Class BasePlusCommissionEmployee member-function definitions. #include <iostream> using std::cout; // BasePlusCommissionEmployee class definition "BasePlusCommissionEmployee.h" #include "BasePlusCommissionEmployee.h"
Outline
9 // constructor 10 BasePlusCommissionEmployee::BasePlusCommissionEmployee( 11 const string &first, const string &last, const string &ssn, 12 double sales, double rate, double salary ) 13 baseconstructor // explicitly call base-class constructor 14 : CommissionEmployee( first, last, ssn, sales, rate ) 15 { 16 setBaseSalary( salary ); // valida
te and store base salary 17 } // end BasePlusCommissionEmployee constructor 18 19 // set base salary 20 void BasePlusCommissionEmployee::setBaseSalary( double salary ) BasePlusCommissionEmployee::setBaseSalary( 21 { 22 baseSalary = ( salary < 0.0 ) ? 0.0 : salary; 23 } // end function setBaseSalary 24 25 26 27 28 29 // return base salary double BasePlusCommissionEmployee::getBaseSalary() const { baseSalary; return baseSalary; } // end function getBaseSalary
BasePlus Commission Employee.cpp
(1 of 2)
C++面向对象程序设计
30 31 // calculate earnings 32 double BasePlusCommissionEmployee::earnings() const 33 { 34 36 37 // print BasePlusCommissionEmployee object 38 void BasePlusCommissionEmployee::print() const 39 { 40 41 42 43 44 45 cout << "\nbase salary: " << getBaseSalary(); 46 } // end function print print // invoke CommissionEmployee's print function CommissionEmployee::print(); "base"; cout << "base-salaried "; return getBaseSalary() + CommissionEmployee::earnings(); 35 } // end function earnings
Outline
BasePlus Commission Employee.cpp
(2 of 2)
C++面向对象程序设计
1 2 3 4 5 6 7 8 9 11
// Fig. 13.5: fig13_05.cpp basederivedbase// Aiming base-class and derived-class pointers at base-class derived// and derived-class objects, respectively. #include <iostream> using std::cout; using std::endl; using std::fixed;
Outline
fig13_05.cpp
(1 of 5)<iomanip> #include <iomanip>
10 using std::setprecision; 12 // include class definitions 13 #include "CommissionEmployee.h" 14 #include "BasePlusCommissionEmployee.h" 15 16 int main() 17 { 18 19 20 21 22 23 base// create base-class pointer CommissionEmployee *commissionEmployeePtr = 0; base// create base-class object commissionEmployee( CommissionEmployee commissionEmployee( "Sue", "Jones", "222-22-2222", 10000, "Sue", "Jones", "222-22-2222", 10000, .06 );
C++面向对象程序设计
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 basebase// aim base-class pointer at base-class object and print commissionEmployeePtr = &commissionEmployee; // perfectly natural basecout << "\n\n\nCalling print with base-class pointer to " nbasebasefunction:\ n"; << "\nbase-class object invokes base-class print function:\n\n"; commissionEmployeePtrbasecommissionEmployeePtr->print(); // invokes base-class print // output objects commissionEmployee and basePlusCommissionEmployee basederived-class objects:\ n"; cout << "Print base-class and derived-class objects:\n\n"; basecommissionEmployee.print(); // invokes base-class print n"; cout << "\n\n"; derivedbasePlusCommissionEmployee.print(); // invokes derived-class print floating// set floating-point output formatting cout << fixed << setprecision( 2 ); derived// create derived-class pointer *basePlusCommissionEmployeePtr BasePlusCommissionEmployee *basePlusCommissionEmployeePtr = 0; derived// create derived-class object BasePlusCommissionEmployee basePlusCommissionEmployee( "Bob", "Lewis", "333-33-3333", 5000, .04, "Bob", "Lewis", "333-33-3333", 5000, .04, 300 );
Outline
fig13_05.cpp
(2 of 5)
C++面向对象程序设计
46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 basederived// aim base-class pointer at derived-class object and print commissionEmployeePtr commissionEmployeePtr = &basePlusCommissionEmployee; basecout << "\n\n\nCalling print with base-class pointer to " "derivedobject\ base<< "derived-class object\ninvokes base-class print " derivedobject:\ n"; << "function on that derived-class object:\n\n"; commissionEmployeePtrbasecommissionEmployeePtr->print(); // invokes base-class print yeePtr cout << endl; return 0; derivedderived// aim derived-class pointer at derived-class object and print basePlusCommis …… 此处隐藏:4166字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件