C/C++ 類別 Class

2023/01/20 C++

自定義類別

建立類別時習慣上會把宣告放在標頭檔中,因此首先在 CIRCLE.h 中建立類別樣板。以下範例允許使用者建立一個圓的類別,並透過建構子初始化半徑。接著透過函數成員呼叫取得圓面積。

// CIRCLE.h
class CIRCLE
{
    // private variables
    double _radius;

    public:
        CIRCLE();
        CIRCLE(double radius);
        void GetArea();
        void SetRadius (double radius);

    private:
        void Display(double area);
};

CIRCLE.cpp 中實作 CIRCLE 的 GetArea、SetRadius、Display 成員函數。這裡須注意定義成員函數時,必須在成員函數名稱前加上所屬類別名稱接兩個冒號。CIRCLE::GetArea() 的意思即代表 GetArea() 函數是屬於 CIRCLE 類別。

// CIRCLE.cpp
#include <stdio.h>
#include "CIRCLE.h"

CIRCLE::CIRCLE()
{
    printf("create and init default radius 5.\n");
    _radius = 5;
}
CIRCLE::CIRCLE(double radius)
{
    _radius = radius;
}

void CIRCLE::GetArea()
{
    double area = _radius * _radius * 3.14;
    Display(area);
}
void CIRCLE::SetRadius(double radius)
{
    _radius = radius;
}

void CIRCLE::Display(double area)
{
    printf("Area of a circle: %lf\n", area);
}

在主程式引入 CIRCLE 標頭檔後即可程式中呼叫 CIRCLE 類別並建立一個實例。

// main.cpp
#include <stdio.h>
#include "CIRCLE.h"

int main(){
    CIRCLE c(2);
    c.GetArea();
    c.SetRadius(5);
    c.GetArea();
}

編譯:

g++ -o main main.cpp CIRCLE.cpp

輸出結果:

Area of a circle: 12.560000
Area of a circle: 78.500000

Reference

好文參考

鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents