---
# System prepended metadata

title: Encapsulation
tags: [Coding Session]

---

# Encapsulation

## Concepts

* Top down design (Don't mention directly)
* Encapsulation and Abstraction
* Maintaining Compatibility
* Nuances and Trade-offs
* Hiding Implementation Details
* Leaky Abstraction

## Other C++ specific stuff

* `std::initializer_list`
* `std::optional` (optional values v.s. exceptions)
