iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
佛心分享-SideProject30

從0開始—初階程式語言學習者的必經之路系列 第 13

DAY13 C++、Python的OOP?程式語言的相似語法

  • 分享至 

  • xImage
  •  

在 C++ 和 Python 中,物件導向程式設計(OOP)具有許多相似的語法。這裡介紹兩種語言中 OOP 的幾個關鍵特性及其相似的語法:

目錄:

1.類別定義
2.建立使用
3.繼承
4.覆寫
5.封包

  1. 類別定義

C++ 和 Python 中的類別定義語法相似,C++ 需要用 class 關鍵字定義類別,而 Python 也是如此,但不需要顯式宣告類型。

C++:

class Animal {
public:
void makeSound() {
std::cout << "Some sound" << std::endl;
}
};

Python:

class Animal:
def make_sound(self):
print("Some sound")

  1. 物件的建立與使用

在兩種語言中,創建物件的方式類似,使用類別名稱來初始化物件。

C++:

Animal myAnimal;
myAnimal.makeSound(); // 呼叫方法

Python:

my_animal = Animal()
my_animal.make_sound() // 呼叫方法

  1. 繼承

兩種語言都支持繼承,C++ 使用冒號 : 指定繼承的父類別,Python 則直接在類別定義中括號內指定父類別。

C++:

class Dog : public Animal {
public:
void makeSound() override {
std::cout << "Bark" << std::endl;
}
};

Python:

class Dog(Animal):
def make_sound(self):
print("Bark")

  1. 方法覆寫

在 C++ 和 Python 中,子類別都可以覆寫父類別的方法。C++ 中使用 override 關鍵字明確表達覆寫,而 Python 直接在子類中定義同名方法即可。

C++:

class Dog : public Animal {
public:
void makeSound() override {
std::cout << "Bark" << std::endl;
}
};

Python:

class Dog(Animal):
def make_sound(self):
print("Bark")

  1. 封包與訪問控制

C++ 提供 public、protected 和 private 關鍵字來控制成員的訪問權限,Python 通過前置底線 _(單一或雙重)來表示成員的保護級別(雖然在技術上,Python 沒有真正的私有變數,這只是約定俗成)。

C++:

class Person {
private:
std::string name;

public:
void setName(std::string n) {
name = n;
}

std::string getName() {
    return name;
}

};

Python:

class Person:
def init(self, name):
self._name = name # 單一底線表示"protected"(非強制)

def set_name(self, name):
    self._name = name

def get_name(self):
    return self._name
  1. 多型

C++ 和 Python 都支持多型。C++ 通常依賴虛擬函式來實現多型,而 Python 中每個方法天生都是虛擬函式,可以直接覆寫。

C++:

class Animal {
public:
virtual void makeSound() {
std::cout << "Some sound" << std::endl;
}
};

class Dog : public Animal {
public:
void makeSound() override {
std::cout << "Bark" << std::endl;
}
};

void playSound(Animal* animal) {
animal->makeSound();
}

Python:

class Animal:
def make_sound(self):
print("Some sound")

class Dog(Animal):
def make_sound(self):
print("Bark")

def play_sound(animal):
animal.make_sound()

C++ 和 Python 的 OOP 語法在某些方面相似,但也有許多不同點。了解這些語法上的異同有助於在兩者之間進行轉換。


上一篇
DAY12簡介OOP(物件導向程式設計/Object-Oriented Programming)
下一篇
DAY14粗體該怎麼寫?使用Swing、HTML及其他標記語言
系列文
從0開始—初階程式語言學習者的必經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言