C 體現了 OOP 原則,包括:封裝:使用類別將資料和方法封裝在物件中。繼承:允許衍生類別從基底類別繼承資料和行為。多態:允許物件的行為根據其類型而改變,透過虛擬函數實現。
物件導向設計原則在C 中的體現
物件導向設計(OOP)是一組以實現鬆散耦合、程式碼重用和資料封裝為目標的原則。 C 是一種物件導向的程式語言,它採用了幾個關鍵的 OOP 原則。
封裝
封裝是指將資料和操作資料的方法封裝在物件中。在 C 中,可以使用類別來實作封裝。例如:
class Person { private: string name; int age; public: Person(string name, int age) : name(name), age(age) {} string getName() { return name; } int getAge() { return age; } };
繼承
繼承允許一個類別(衍生類別)從另一個類別(基底類別)繼承資料和行為。在 C 中,使用 public
、protected
和 private
存取修飾符來控制衍生類別對基底類別成員的存取權限。例如:
class Student : public Person { private: string major; public: Student(string name, int age, string major) : Person(name, age), major(major) {} string getMajor() { return major; } };
多態
多型是指物件的行為可以根據其型別而改變。在 C 中,可以使用虛函數來實現多態。例如:
class Animal { public: virtual string makeSound() { return "Unknown"; } }; class Dog : public Animal { public: virtual string makeSound() { return "Woof"; } }; class Cat : public Animal { public: virtual string makeSound() { return "Meow"; } }; // 实战案例 int main() { Animal* animals[] = { new Dog(), new Cat() }; for (Animal* animal : animals) { cout << animal->makeSound() << endl; } return 0; }
在這個例子中,Animal
類別是一個基類,它定義了 makeSound()
虛擬函數。 Dog
和 Cat
類別是從 Animal
類別衍生的衍生類,它們重寫了 makeSound()
方法。主函數建立了一個 Animal
數組,其中包含 Dog
和 Cat
物件的指標。然後,它遍歷數組並呼叫每個物件的 makeSound()
方法。這會根據物件的類型列印不同的聲音。
以上是物件導向設計原則在C++中的體現的詳細內容。更多資訊請關注PHP中文網其他相關文章!