C++ Cours

C++ OOP: Classes, Inheritance, Polymorphism

Tutoriel Python 3 pour débutants.

Classes and Objects

#include <iostream>
#include <string>
using namespace std;

class Person {
private:
    string name;
    int age;

public:
    // Constructor
    Person(string n, int a) : name(n), age(a) {}

    // Getter
    string getName() const { return name; }

    // Method
    void introduce() const {
        cout << "Hi, I am " << name << ", age " << age << endl;
    }

    // Destructor
    ~Person() {}
};

int main() {
    Person p("Alice", 30);
    p.introduce(); // "Hi, I am Alice, age 30"
    return 0;
}

Inheritance

class Animal {
protected:
    string name;
public:
    Animal(string n) : name(n) {}
    virtual void speak() { cout << name << " makes a sound
"; }
    virtual ~Animal() {}
};

class Dog : public Animal {
public:
    Dog(string n) : Animal(n) {}
    void speak() override { cout << name << " barks!
"; }
};

Animal* a = new Dog("Rex");
a->speak(); // "Rex barks!" — polymorphism via virtual
delete a;

Abstract Classes

class Shape {
public:
    virtual double area() const = 0;  // pure virtual
    void print() { cout << "Area: " << area() << "
"; }
};

class Circle : public Shape {
    double r;
public:
    Circle(double r) : r(r) {}
    double area() const override { return 3.14159 * r * r; }
};

Access Specifiers

SpecifierAccess
publicAccessible everywhere
protectedClass and derived classes
privateOnly within the class

Constructors and Initializer List

class Point {
    int x, y;
public:
    Point(int x, int y) : x(x), y(y) {}   // initializer list
    Point() : x(0), y(0) {}               // default constructor
    void print() { cout << "(" << x << "," << y << ")
"; }
};