C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.
html
C++ quick reference cheat sheet that provides basic syntax and methods.
hello.cpp
#include <iostream>
int main() {
std::cout << "Hello QuickRef\n";
return 0;
}
Compiling and running
$ g++ hello.cpp -o hello
$ ./hello
Hello QuickRef
1 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Variables
int number = 5; // Integer
float f = 0.95; // Floating number
double PI = 3.14159; // Floating number
char yes = 'Y'; // Character
std::string s = "ME"; // String (text)
bool isRight = true; // Boolean
// Constants
const float RATE = 0.8;
int age {25}; // Since C++11
std::cout << age; // Print 25
Primitive Data Types
Data Type Size Range
int 4 bytes -231 to 231-1
float 4 bytes N/A
double 8 bytes N/A
char 1 byte -128 to 127
bool 1 byte true / false
void N/A N/A
wchar_t 2 or 4 bytes 1 wide character
User Input
int num;
std::cout << "Type a number: ";
std::cin >> num;
std::cout << "You entered " << num;
2 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Swap
int a = 5, b = 10;
std::swap(a, b);
// Outputs: a=10, b=5
std::cout << "a=" << a << ", b=" << b;
Comments
// A single one line comment in C++
/* This is a multiple line comment
in C++ */
If statement
if (a == 10) {
// do something
}
See: Conditionals
Loops
for (int i = 0; i < 10; i++) {
std::cout << i << "\n";
}
See: Loops
3 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Functions
#include <iostream>
void hello(); // Declaring
int main() { // main function
hello(); // Calling
}
void hello() { // Defining
std::cout << "Hello QuickRef!\n";
}
See: Functions
References
int i = 1;
int& ri = i; // ri is a reference to i
ri = 2; // i is now changed to 2
std::cout << "i=" << i;
i = 3; // i is now changed to 3
std::cout << "ri=" << ri;
ri and i refer to the same memory location.
4 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Namespaces
#include <iostream>
namespace ns1 {int val(){return 5;}}
int main()
{
std::cout << ns1::val();
}
#include <iostream>
namespace ns1 {int val(){return 5;}}
using namespace ns1;
using namespace std;
int main()
{
cout << val();
}
Namespaces allow global identifiers under a name
Declaration
std::array<int, 3> marks; // Definition
marks[0] = 92;
marks[1] = 97;
marks[2] = 98;
// Define and initialize
std::array<int, 3> = {92, 97, 98};
// With empty members
std::array<int, 3> marks = {92, 97};
std::cout << marks[2]; // Outputs: 0
5 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Manipulation
┌─────┬─────┬─────┬─────┬─────┬─────┐
| 92 | 97 | 98 | 99 | 98 | 94 |
└─────┴─────┴─────┴─────┴─────┴─────┘
0 1 2 3 4 5
std::array<int, 6> marks = {92, 97, 98, 99, 98, 94};
// Print first element
std::cout << marks[0];
// Change 2th element to 99
marks[1] = 99;
// Take input from the user
std::cin >> marks[2];
Displaying
char ref[5] = {'R', 'e', 'f'};
// Range based for loop
for (const int &n : ref) {
std::cout << std::string(1, n);
}
// Traditional for loop
for (int i = 0; i < sizeof(ref); ++i) {
std::cout << ref[i];
}
6 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Multidimensional
j0 j1 j2 j3 j4 j5
┌────┬────┬────┬────┬────┬────┐
i0 | 1 | 2 | 3 | 4 | 5 | 6 |
├────┼────┼────┼────┼────┼────┤
i1 | 6 | 5 | 4 | 3 | 2 | 1 |
└────┴────┴────┴────┴────┴────┘
int x[2][6] = {
{1,2,3,4,5,6}, {6,5,4,3,2,1}
};
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 6; ++j) {
std::cout << x[i][j] << " ";
}
}
// Outputs: 1 2 3 4 5 6 6 5 4 3 2 1
7 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
If Clause
if (a == 10) {
// do something
}
int number = 16;
if (number % 2 == 0)
{
std::cout << "even";
}
else
{
std::cout << "odd";
}
// Outputs: even
Else if Statement
int score = 99;
if (score == 100) {
std::cout << "Superb";
}
else if (score >= 90) {
std::cout << "Excellent";
}
else if (score >= 80) {
std::cout << "Very Good";
}
else if (score >= 70) {
std::cout << "Good";
}
else if (score >= 60)
std::cout << "OK";
else
std::cout << "What?";
8 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Operators
Relational Operators
a == b a is equal to b
a != b a is NOT equal to b
a < b a is less than b
a > b a is greater b
a <= b a is less than or equal to b
a >= b a is greater or equal to b
Assignment Operators
a += b Aka a = a + b
a -= b Aka a = a - b
a *= b Aka a = a * b
a /= b Aka a = a / b
a %= b Aka a = a % b
Logical Operators
exp1 && exp2 Both are true (AND)
exp1 || exp2 Either is true (OR)
!exp exp is false (NOT)
Bitwise Operators
a & b Binary AND
a | b Binary OR
a ^ b Binary XOR
~ a Binary One's Complement
a << b Binary Shift Left
a >> b Binary Shift Right
9 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Ternary Operator
┌── True ──┐
Result = Condition ? Exp1 : Exp2;
└───── False ─────┘
int x = 3, y = 5, max;
max = (x > y) ? x : y;
// Outputs: 5
std::cout << max << std::endl;
int x = 3, y = 5, max;
if (x > y) {
max = x;
} else {
max = y;
}
// Outputs: 5
std::cout << max << std::endl;
Switch Statement
int num = 2;
switch (num) {
case 0:
std::cout << "Zero";
break;
case 1:
std::cout << "One";
break;
case 2:
std::cout << "Two";
break;
case 3:
std::cout << "Three";
break;
default:
std::cout << "What?";
break;
}
10 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
While
int i = 0;
while (i < 6) {
std::cout << i++;
}
// Outputs: 012345
Do-while
int i = 1;
do {
std::cout << i++;
} while (i <= 5);
// Outputs: 12345
Continue statements
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue;
}
std::cout << i;
} // Outputs: 13579
11 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Infinite loop
while (true) { // true or 1
std::cout << "infinite loop";
}
for (;;) {
std::cout << "infinite loop";
}
for(int i = 1; i > 0; i++) {
std::cout << "infinite loop";
}
for_each (Since C++11)
#include <iostream>
int main()
{
auto print = [](int num) { std::cout << num << std::endl; };
std::array<int, 4> arr = {1, 2, 3, 4};
std::for_each(arr.begin(), arr.end(), print);
return 0;
}
Range-based (Since C++11)
for (int n : {1, 2, 3, 4, 5}) {
std::cout << n << " ";
}
// Outputs: 1 2 3 4 5
std::string hello = "QuickRef.ME";
for (char c: hello)
{
std::cout << c << " ";
}
// Outputs: Q u i c k R e f . M E
12 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Break statements
int password, times = 0;
while (password != 1234) {
if (times++ >= 3) {
std::cout << "Locked!\n";
break;
}
std::cout << "Password: ";
std::cin >> password; // input
}
Several variations
for (int i = 0, j = 2; i < 3; i++, j--){
std::cout << "i=" << i << ",";
std::cout << "j=" << j << ";";
}
// Outputs: i=0,j=2;i=1,j=1;i=2,j=0;
Arguments & Returns
#include <iostream>
int add(int a, int b) {
return a + b;
}
int main() {
std::cout << add(10, 20);
}
add is a function taking 2 ints and returning int
13 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Overloading
void fun(string a, string b) {
std::cout << a + " " + b;
}
void fun(string a) {
std::cout << a;
}
void fun(int a) {
std::cout << a;
}
Built-in Functions
#include <iostream>
#include <cmath> // import library
int main() {
// sqrt() is from cmath
std::cout << sqrt(9);
}
Defining a Class
class MyClass {
public: // Access specifier
int myNum; // Attribute (int variable)
string myString; // Attribute (string variable)
};
14 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Creating an Object
MyClass myObj; // Create an object of MyClass
myObj.myNum = 15; // Set the value of myNum to 15
myObj.myString = "Hello"; // Set the value of myString to "Hello"
cout << myObj.myNum << endl; // Output 15
cout << myObj.myString << endl; // Output "Hello"
Constructors
class MyClass {
public:
int myNum;
string myString;
MyClass() { // Constructor
myNum = 0;
myString = "";
}
};
MyClass myObj; // Create an object of MyClass
cout << myObj.myNum << endl; // Output 0
cout << myObj.myString << endl; // Output ""
15 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Destructors
class MyClass {
public:
int myNum;
string myString;
MyClass() { // Constructor
myNum = 0;
myString = "";
}
~MyClass() { // Destructor
cout << "Object destroyed." << endl;
}
};
MyClass myObj; // Create an object of MyClass
// Code here...
// Object is destroyed automatically when the program exits the scope
Class Methods
class MyClass {
public:
int myNum;
string myString;
void myMethod() { // Method/function defined inside the class
cout << "Hello World!" << endl;
}
};
MyClass myObj; // Create an object of MyClass
myObj.myMethod(); // Call the method
16 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Access Modifiers
class MyClass {
public: // Public access specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
protected: // Protected access specifier
int z; // Protected attribute
};
MyClass myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; // Not allowed (private)
myObj.z = 75; // Not allowed (protected)
Getters and Setters
class MyClass {
private:
int myNum;
public:
void setMyNum(int num) { // Setter
myNum = num;
}
int getMyNum() { // Getter
return myNum;
}
};
MyClass myObj;
myObj.setMyNum(15); // Set the value of myNum to 15
cout << myObj.getMyNum() << endl; // Output 15
17 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Inheritance
class Vehicle {
public:
string brand = "Ford";
void honk() {
cout << "Tuut, tuut!" << endl;
}
};
class Car : public Vehicle {
public:
string model = "Mustang";
};
Car myCar;
myCar.honk(); // Output "Tuut, tuut!"
cout << myCar.brand + " " + myCar.model << endl; // Output "Ford Mustang"
Preprocessor
if elif
else endif
ifdef ifndef
define undef
include line
error pragma
defined __has_include
__has_cpp_attribute export
import module
18 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Includes
#include "iostream"
#include <iostream>
Defines
#define FOO
#define FOO "hello"
#undef FOO
If
#ifdef DEBUG
console.log('hi');
#elif defined VERBOSE
...
#else
...
#endif
Error
#if VERSION == 2.0
#error Unsupported
#warning Not really supported
#endif
Macro
#define DEG(x) ((x) * 57.29)
Token concat
#define DST(name) name##_s name##_t
DST(object); #=> object_s object_t;
19 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Stringification
#define STR(name) #name
char * a = STR(object); #=> char * a = "object";
file and line
#define LOG(msg) console.log(__FILE__, __LINE__, msg)
#=> console.log("file.txt", 3, "hey")
Escape Sequences
\b Backspace
\f Form feed
\n Newline
\r Return
\t Horizontal tab
\v Vertical tab
\\ Backslash
\' Single quotation mark
\" Double quotation mark
\? Question mark
\0 Null Character
20 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Keywords
alignas alignof and and_eq asm
atomic_cancel atomic_commit atomic_noexcept auto bitand
bitor bool break case catch
char char8_t char16_t char32_t class
compl concept const consteval constexpr
constinit const_cast continue co_await co_return
co_yield decltype default delete do
double dynamic_cast else enum explicit
export extern false float for
friend goto if inline int
long mutable namespace new noexcept
not not_eq nullptr operator or
or_eq private protected public reflexpr
register reinterpret_cast requires return short
signed sizeof static static_assert static_cast
struct switch synchronized template this
thread_local throw true try typedef
typeid typename union unsigned using
virtual void volatile wchar_t while
xor xor_eq final override transaction_safe
transaction_safe_dynamic
21 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Preprocessor
if elif
else endif
ifdef ifndef
define undef
include line
error pragma
defined __has_include
__has_cpp_attribute export
import module
C++ Infographics & Cheat Sheets (hackingcpp.com)
C++ reference (cppreference.com)
C++ Language Tutorials (cplusplus.com)
Top Cheatsheet
Quick Reference Quick Reference
Quick Reference Quick Reference
22 of 23 5/8/25, 21:07
C++ Cheat Sheet & Quick Reference https://quickref.me/cpp.html
Recent Cheatsheet
Quick Reference Quick Reference
Quick Reference Quick Reference
© 2025 QuickRef.ME, All rights reserved.
23 of 23 5/8/25, 21:07