C++ 23 · Classes, memory and templates
Use polymorphism
Override a virtual function in a derived class. Always give a base class a virtual destructor.
struct Shape {
virtual ~Shape() = default;
virtual double area() const = 0;
};
struct Circle : Shape {
double r;
explicit Circle(double r) : r(r) {}
double area() const override { return 3.14159 * r * r; }
};
More classes, memory and templates commands
- Define a class
- Own an object with unique_ptr
- Share ownership with shared_ptr
- Move instead of copy
- Lock a mutex safely
- Write a function template
All classes, memory and templates commands · C++ 23 cheatsheet