C 大學基礎教程 12 物件導向程式設計 繼承

2021-06-22 18:05:02 字數 2338 閱讀 3530

//佣金雇員類,薪水完全是銷售提成

/*#ifndef x //先測試x是否被巨集定義過

#define x

程式段 1 //如果x沒有被巨集定義過,定義x,並編譯程式段 1

#endif

程式段 2 //如果x已經定義過了則編譯程式段2的語句,「忽視」程式段 1。

*/#ifndef commision_h

#define commision_h

#include using namespace std;

class commisionemployee

;#endif

#include "commisionemployee.h"

#include commisionemployee::commisionemployee( const string &first,const string &last,

const string &ssn,double sales,double rate)

commisionemployee::~commisionemployee()

void commisionemployee::setfirstname(const string &first)

string commisionemployee::getfirstname()

void commisionemployee::setlastname(const string &last)

string commisionemployee::getlastname()

void commisionemployee::setsocialsecuritynumber(const string &ssn)

string commisionemployee::getsocialsecuritynumber()

void commisionemployee::setgrosssales(double sales)

double commisionemployee::getgrosssales()

void commisionemployee::setcommisionrate(double rate)

double commisionemployee::getcommisionrate()

double commisionemployee::earnings()

void commisionemployee::print()

//帶底薪佣金雇員類,薪水由底薪和提成構成

#ifndef basepluscommisionemployee_h

#define basepluscommisionemployee_h

#include "commisionemployee.h"

#include using namespace std;

class basepluscommisionemployee :public commisionemployee

;#endif

#include "basepluscommisionemployee.h"

#include using namespace std;

basepluscommisionemployee::basepluscommisionemployee(const string &first,

const string &last,const string &ssn,double sales,double rate,double salary)

:commisionemployee(first,last,ssn,sales,rate)

basepluscommisionemployee::~basepluscommisionemployee()

void basepluscommisionemployee::setbasesalary(double salary)

double basepluscommisionemployee::getbasesalary()

double basepluscommisionemployee::earnings()

void basepluscommisionemployee::print()

#include "basepluscommisionemployee.h"

#include "commisionemployee.h"

#include #include using namespace std;

//這個例項旨在明晰繼承關係中的析構函式與構造函式呼叫順序!!!

int main()

system("pause >> cout");

return 0;

}

C 大學基礎教程 11 10

ifndef string h define string h include using namespace std class string bool operator bool operator const string right const 寫內聯函式的時候忘記寫引數,bool opera...

C 基礎教程物件導向(學習筆記5(2))

在編寫具有多個建構函式的類 大多數建構函式 時,必須為每個建構函式中的所有成員指定預設值會導致冗餘 如果更新成員的預設值,則需要觸控每個建構函式。從c 11開始,可以直接為普通類成員變數 不使用static關鍵字的變數 提供預設初始化值 class rectangle void print int ...

C 基礎教程物件導向(學習筆記(23))

過載一元運算子 與您目前看到的運算子不同,正 負 和邏輯非 運算子都是一元運算子,這意味著它們只能在乙個運算元上執行。因為它們僅對它們所應用的物件進行操作,所以通常將一元運算子過載實現為成員函式。所有三個運算元都以相同的方式實現。讓我們看一下我們如何在前面的例子中使用的cents類上實現operat...