Beginners Guide: Overview, Features, and Learning Path
This page gives you an overview of C++, explains how it relates to C, and guides you through the recommended learning order for this dictionary.
What is C++?
C++ is a programming language developed by Bjarne Stroustrup at AT&T Bell Laboratories in the 1980s. In short, it is a language that extends C by adding object-oriented programming through classes and generic programming through templates.
Almost all C code compiles as valid C++. C++ is an extension of C, not a completely different language.
The relationship between C and C++
Pointers, structs, and functions from C all work in C++ as-is. C++ builds on C by adding object-oriented programming, templates, and the Standard Template Library (STL).
C vs C++ — Features and Trade-offs
C language characteristics
C is known for its simple syntax and direct hardware control.
/* C: representing a character using a struct and function */
struct Fighter {
char name[32];
int power;
};
void show_fighter(struct Fighter *f) {
printf("%s: power = %d\n", f->name, f->power);
}
The C++ approach — abstraction through classes
In C++, you can bundle data and operations together into a class.
// C++: bundling data and operations into a class
class Fighter {
public:
std::string name;
int power;
void show() const {
std::cout << name << ": power = " << power << std::endl;
}
};
Fighter f;
f.name = "Okabe Rintaro";
f.power = 9500;
f.show();
Comparison: C vs C++
Each language has its strengths and weaknesses. Neither is universally better — the right choice depends on the use case and requirements.
| C | C++ | |
|---|---|---|
| Programming style | Procedural | Procedural + OOP + Generic |
| Abstraction | Structs + function pointers | Classes + virtual functions + templates |
| Memory management | malloc/free (manual) | new/delete + smart pointers |
| Standard library | stdio.h etc. (small) | STL (containers, algorithms, etc.) |
| Code size | Compact | Tends to grow with features |
| Learning cost | Lower | Higher (templates, RAII, etc.) |
| Primary uses | OS, embedded, drivers | Games, applications, high-performance software |
Key Features of C++
Classes and object-oriented programming
You can define classes that bundle data and operations together. See classes for details.
Templates
Templates let you write code that works with any type. The same logic can operate on int, double, or any user-defined type. See templates for details.
STL (Standard Template Library)
A library of generic data structures and algorithms: dynamic arrays, maps, sorting, and more. Includes std::vector, std::map, std::sort, and many others.
Smart pointers and RAII
Mechanisms to prevent memory leaks. RAII (Resource Acquisition Is Initialization) ties resource allocation and deallocation to an object's lifetime. std::unique_ptr and std::shared_ptr are the primary examples. See smart pointers for details.
Recommended Learning Order
After getting an overview from this page, working through the C++ dictionary pages in the following order allows for efficient learning.
This is just one possible learning path. If you want to look up a specific topic, use the menu on the left to navigate directly to any page.
Overview
C++ combines the raw performance and hardware control of C with powerful abstraction mechanisms: object-oriented programming, templates, and the STL. It is widely used wherever performance matters — game engines (such as Unreal Engine), web browsers, databases, and embedded systems.
The learning curve is steep, but mastering C++ gives you a deep understanding of how programs work at the memory and CPU level. You do not need to learn everything at once. A practical starting point is variables, control structures, functions, and classes.
If you find any errors or copyright issues, please contact us.