rectangle-terminalC++

  • สนับสนุน OOP โดยเป็นส่วนเพิ่มเติมในภาษาที่อยู่แล้ว (สนับสนุน procedural และ data-oriented programming) เป็นภาษา OOP แบบ hybrid

  • คลาสและวัตถุ: ใช้คำว่า class หรือ struct (คล้ายกัน แต่ struct มีค่าเริ่มต้นเป็น public)

  • การสืบทอด: ใช้ : สำหรับการสืบทอด

  • การจัดการหน่วยความจำ: ผู้พัฒนาต้องจัดการหน่วยความจำด้วยตนเอง (เช่น การใช้ new และ delete)

ตัวอย่าง:

#include<iostream>
class Animal {
public:
    Animal() {
        std::cout << "create animal" << std::endl;
    }
    
    ~Animal() {
        std::cout << "delete animal" << std::endl;
    }
    
    virtual void sound() {
        std::cout << "animal makes a sound" << std::endl;
    }
};

class Dog : public Animal {
public:
    Dog() {
        std::cout << "dog" << std::endl;
    }
    
    ~Dog() {
        std::cout << "delete dog" << std::endl;
    }
    
    void sound() override {
        std::cout << "dog barks" << std::endl;
    }
};

class Cat : public Animal {
public:
    Cat() {
        std::cout << "cat" << std::endl;
    }
    
    ~Cat() {
        std::cout << "delete cat" << std::endl;
    }
    
    void sound() override {
        std::cout << "cat meows" << std::endl;
    }
};

int main() {
    Animal a;
    Dog d;
    Cat c;
    
    a.sound();
    d.sound();
    c.sound();
    
    return 0;
}

Last updated