iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
自我挑戰組

C語言與C++語言自學系列 第 28

C語言與C++語言自學第二十八天

  • 分享至 

  • xImage
  •  

C++物件導向建立階層類別

我們要用C++語言建立CommissionEmployee與BasePlusCommissionEmployee繼承階層呢,下程式碼

#ifndef BASEPLUS_H
#define BASEPLUS_H 
#include <string>
#include "CommissionEmployee.h"

class BasePlusCommissionEmployee: public CommissionEmployee
{
    public:
    BasePlusCommissionEmployee(const std::string &, const std::string &,
    const std::string &, double=0.0, double=0.0, double=0.0);
    
    void setBaseSalary(double);
    double getBaseSalary()const;

    double earings()const;
    void print()const;

    private:
    double baseSalary;   
};
#endif

上面的程式碼中建立了Commission類別所衍生出新的BaseCommissionEmployee類別,在上面的程式碼中,一個BasePlusCommissionEmployee物件是由一種CommissionEmployee類別因為繼承會將CommissionEmployee類別的能力給傳遞下去,但BasePlusCommissionEmployee類別多了一個資料成員baseSalary,冒號:代表繼承關係,public表示公有的,BasePlusCommissionEmployee繼承CommissionEmployee類別除了建構子以外的所有成員,每個衍生類別都要提供自己專屬的建構子,因此BasePlusCommissionEmployee類別的public包含了自己的建構子以及CommissionEmployee類別繼承而來的public成員函示,雖然我們在BasePlusCommissionEmployee類別看不見這些繼承成員之間的程式碼,他仍然是衍生類疊BasePlusCommissionEmployee的一部分

C語言查詢上限內最大數字

讓使用者輸入10個正數後,輸入要查詢的數字後,顯示輸入整數後最接近的一個,輸入0結束,下程式碼

#include <stdio.h>
int main()
{
    int i,n[10],q;
    for(=1;i<=10;i++)
    {
        scanf("%d",&n[i-1]);
    }
    while(1){
        int max_i=-1;
        printf("Q: ");
        scanf("%d", &q);
        if(q==0)
        {
            break;
        }
        for(=0;i<10;i++)
        {
            if(n[i]<=q&&(max_i==-1||n[i]>n[max_i])){
                max_i=i;
            }
        }
        if(max_i!=-1){
            printf("%d\n", n[max_i]);
        }
    }
    return 0;
}

上面的程式碼就是for裡面的觀念最重要明天繼續講解


上一篇
C語言與C++語言自學第二十七天
下一篇
C語言與C++語言自學第二十九天
系列文
C語言與C++語言自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言