使用 C++ 的面向物件程式設計基本概念


面向物件程式設計是一種使用物件和類進行工作的程式設計型別。面向物件程式設計基於現實世界的實體,如繼承、多型性、資料隱藏等。其目標是將資料和操作這些資料的函式繫結到單個實體中,以限制其使用。

面向物件程式設計的一些基本概念包括:

  • 物件
  • 封裝
  • 多型性
  • 繼承
  • 抽象

是一種具有自身成員(即資料成員和成員函式)的資料型別。它是面向物件程式語言中物件的藍圖。它是 C++ 中面向物件程式設計的基本構建塊。類的成員是透過建立類的例項在程式語言中訪問的。

類的一些重要屬性:

  • 是使用者定義的資料型別。

  • 類包含資料成員和成員函式等成員。

  • 資料成員是類的變數。

  • 成員函式是用於操作資料成員的方法。

  • 資料成員定義類的屬性,而成員函式定義類的行為。

一個類可以有多個物件,這些物件具有共同的屬性和行為。

語法

class class_name {
   data_type data_name;
   return_type method_name(parameters);
}

物件物件是類的例項。它是一個具有在面向物件程式設計中使用的特性和行為的實體。物件是用來分配記憶體的實體。定義的類本身不具有記憶體塊,只有在建立物件時才會分配記憶體。

語法

class_name object_name;

示例

#include<iostream>
using namespace std;
class calculator {
   int number1;
   int number2;
   char symbol;
   public :
   void add() {
      cout<<"The sum is "<<number1 + number2 ;
   }
   void subtract() {
      cout<<"The subtraction is "<<number1 - number2 ;
   }
   void multiply() {
      cout<<"The multiplication is "<<number1 * number2 ;
   }
   void divide() {
      cout<<"The division is "<<number1 / number2 ;
   }
   calculator (int a , int b , char sym) {
      number1 = a;
      number2 = b;
      symbol = sym;
      switch(symbol){
         case '+' : add();
            break;
         case '-' : add();
            break;
         case '*' : add();
            break;
         case '/' : add();
            break;
         default : cout<<"Wrong operator";
      }
   }
};
int main() {
   calculator c1(12 , 34 , '+');
}

輸出

The sum is 46

在面向物件程式設計中,封裝是將資料和資訊包裝到單個單元中的概念。封裝的正式定義是:封裝是將資料及其可以操作資料的相關函式繫結在一起。

讓我們用一個簡單的現實生活例子來理解這個概念:

在我們的大學裡,我們有各個課程的系,例如計算機科學系、資訊科技系、電子工程系等。每個系都有自己的學生和課程,這些學生和課程會被記錄和教授。讓我們把每個系想象成一個類,它封裝了該系學生的資訊和要教授的課程。此外,每個系還有一些固定的規則和準則供該課程的學生遵循,例如時間安排、學習方法等。這就是現實生活中的封裝,有資料,也有操作資料的方法。

由於面向物件程式設計中的封裝概念,另一個非常重要的概念是可能的,那就是資料抽象或資料隱藏。這是因為封裝隱藏了資料,只顯示需要顯示的資訊。

多型性 顧名思義,多型性意味著多種形式。多型性是面向物件程式設計能夠使用多種形式完成某些工作的能力。方法的行為取決於呼叫方法的型別或情況。

讓我們舉一個現實生活的例子,一個人可以根據情況有多種行為。例如,一個女人可以是母親、經理和女兒。這決定了她的行為。這就是多型性概念的來源。

C++程式語言中,多型性可以透過兩種方式實現。它們是運算子過載和函式過載。

運算子過載運算子過載中,運算子在不同的使用例項中可以有多種行為。

函式過載 具有相同名稱的函式,可以根據某些條件執行多種型別的工作。

繼承 它是類繼承或派生其他類屬性或特性的能力。繼承在面向物件程式中非常重要,因為它允許重用,即透過繼承使用在另一個類中定義的方法。從其他類派生屬性的類稱為子類或派生類,而繼承屬性的類稱為基類或父類。

C++程式語言支援以下型別的繼承:

  • 單繼承
  • 多繼承
  • 多層繼承
  • 層次繼承
  • 混合繼承

抽象 資料抽象或資料隱藏是隱藏資料並僅向終端使用者顯示相關資料的概念。它也是面向物件程式設計的重要組成部分。

讓我們舉一個現實生活的例子來更好地理解這個概念:當我們騎腳踏車時,我們只知道按下剎車會停下來,轉動油門會加速,但我們不知道它是如何工作的,我們也不需要知道,這就是資料抽象的概念。

在 C++ 程式語言中,我們可以透過兩種方式實現資料抽象:

  • 使用類
  • 使用標頭檔案

更新於:2023年9月2日

45,000+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.