C++ is an open source programming language created in 1985 by Bjarne Stroustrup.
#5on PLDB | 39Years Old | 2mRepos |
C++ ( pronounced cee plus plus) is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. It was designed with a bias toward system programming and embedded, resource-constrained and large systems, with performance, efficiency and flexibility of use as its design highlights. Read more on Wikipedia...
// Type your code here, or load an example.
int square(int num) {
return num * num;
}
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
}
// Hello World in C++ (pre-ISO)
#include <iostream.h>
main()
{
cout << "Hello World!" << endl;
return 0;
}
#include <cstdint>
namespace Gui
{
}
1 #include <iostream>
2 #include <vector>
3 #include <stdexcept>
4
5 int main() {
6 try {
7 std::vector<int> vec{3, 4, 3, 1};
8 int i{vec.at(4)}; // Throws an exception, std::out_of_range (indexing for vec is from 0-3 not 1-4)
9 }
10 // An exception handler, catches std::out_of_range, which is thrown by vec.at(4)
11 catch (std::out_of_range &e) {
12 std::cerr << "Accessing a non-existent element: " << e.what() << '\n';
13 }
14 // To catch any other standard library exceptions (they derive from std::exception)
15 catch (std::exception &e) {
16 std::cerr << "Exception thrown: " << e.what() << '\n';
17 }
18 // Catch any unrecognised exceptions (i.e. those which don't derive from std::exception)
19 catch (...) {
20 std::cerr << "Some fatal error\n";
21 }
22 }
#define #defined #elif #else #endif #error #if #ifdef #ifndef #include #line #pragma #undef alignas alignof and and_eq asm atomic_cancel atomic_commit atomic_noexcept auto bitand bitor bool break case catch char char16_t char32_t class compl concept const constexpr const_cast continue decltype default delete do double dynamic_cast else enum explicit export extern false final float for friend goto if inline int import long module mutable namespace new noexcept not not_eq nullptr operator or or_eq override private protected public register reinterpret_cast requires return short signed sizeof static static_assert static_cast struct switch synchronized template this thread_local throw transaction_safe transaction_safe_dynamic true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq
Feature | Supported | Example | Token |
---|---|---|---|
Standard Library | ✓ |
#include |
|
Access Modifiers | ✓ | ||
Exceptions | ✓ | ||
Classes | ✓ | ||
Threads | ✓ | ||
Virtual function | ✓ | class Animal { public: // Intentionally not virtual: void Move(void) { std::cout << "This animal moves in some way" << std::endl; } virtual void Eat(void) = 0; }; // The class "Animal" may possess a definition for Eat if desired. class Llama : public Animal { public: // The non virtual function Move is inherited but not overridden. void Eat(void) override { std::cout << "Llamas eat grass!" << std::endl; } }; | |
Templates | ✓ |
template |
|
Explicit Standard Library | ✓ |
#include |
|
Operator Overloading | ✓ | ||
Multiple Inheritance | ✓ | ||
Namespaces | ✓ |
#include |
|
Function Overloading | ✓ |
// volume of a cube
int volume(const int s) {
return s*s*s;
}
// volume of a cylinder
double volume(const double r, const int h) {
return 3.1415926*r*r*static_cast |
|
Iterators | ✓ |
std::vector |
|
Constructors | ✓ | class Foobar { public: Foobar(double r = 1.0, double alpha = 0.0) // Constructor, parameters with default values. : x_(r * cos(alpha)) // <- Initializer list { y_ = r * sin(alpha); // <- Normal assignment } private: double x_; double y_; }; Foobar a, b(3), c(5, M_PI/4); | |
Single Dispatch | ✓ | ||
Partial Application | ✓ |
// http://www.cplusplus.com/reference/functional/bind/
// bind example
#include |
|
Magic Getters and Setters | X |