Getting Started

C++ is the most used and most popular programming language developed by Bjarne Stroustrup. C++ is a high-level and object-oriented programming language. This language allows developers to write clean and efficient code for large applications and software development, game development, and operating system programming. It is an expansion of the C programming language to include Object Oriented Programming(OOPs) and is used to develop programs for computers. This C++ Tutorial will cover all the basic to advanced topics of C++ like C++ basics, C++ functions, C++ classes, OOPs and STL concepts.

C++ is a most popular cross-platform programming language which is used to create high-performance applications and software like OS, Games, E-commerce software, etc. It was developed by Bjarne Stroustrup, as an extension of C language. C++ give a high level of control over system resources and memory.


Why learn C++?

  • C++ is one of the most used and popular programming languages.
  • C++ is used in making operating systems, embedded systems, and Graphical User Interfaces.
  • It is an object-oriented programming language that implements all the OOPs concepts such as Abstraction, Encapsulation, and Inheritance, which gives a clear structure to programs and allows code to be reused, lowering development costs and providing security.
  • It is portable and can be used to create applications that can be adapted to multiple platforms.
  • C++ is easy to learn so that you can choose it as your first programming language.
  • It makes programming easy for programmers to switch to C++ because its syntax is similar to C, Java, and C#.


Applications of C++

Here are the uses of C++ with real-world applications:

  • Operating Systems
    C++ is most widely used programming language and become an ideal choice for developing operating systems. Mac OS X has majority of parts written in C++ and Most of Microsoft’s software like Windows, Microsoft Office, IDE Visual Studio, and Internet Explorer are also written in C++.
  • Games
    C++ used for game development and companies use it as their first choice to develop gaming systems because C++ is very close to the machine so It can easily manipulate resources and able to built complex 3D games, multiplayer game, etc. Unreal game engine make games using C++.
  • Web Browsers
    Most of the browsers in Computers are developed in C++ for effecting goals and Mozilla Firefox is totally developed by C++ and Google Applications and software like Chrome and Google File System are partly written in C++.
  • Compilers
    Compilers of many programming languages are designed in C and C++ and this is because they are moderately lower-level when compared to other higher-level programming languages and C/C++ are closer to the hardware.
  • Embedded Systems
    Embedded systems that need the program closer to the hardware such as smartwatches, medical equipment systems, mobile phones etc., are developed in C++ and It can perform a lot of low-level function calls, unlike different high-level programming languages.

 

Roadmap for C++

C++Introduction to the Language  roadmap.shhttps://Beginner Topics / Start with theseAdvanced Topics / Pick them in the endIntermediate Topics / Pick them nextReferences / Additional ResourcesSalmer’s C++ RoadmapOptional / Learn if you wantWhat is C++?Why use C++?C vs C++Setting up your EnvironmentInstalling C++Code Editors / IDEsRunning your First ProgramArithmetic OperatorsLogical OperatorsLoops: for/whileBitwise OperatorsFunctionsOperatorsLambdaData TypesStatic TypingDynamic TypingRTTIPointers and ReferencesReferencesSmart PointersMemory ModelRaw Pointersunique_ptrshared_ptrweak_ptrLifetime of ObjectsNew/delete OperatorsMemory LeakageBasic OperationsStructuring CodebaseCode Splitting: Headers / CPP FilesScopeNamespacesForward DeclarationStructures and ClassesObject Oriented ProgrammingStatic PolymorphismDynamic PolymorphismOverloading of FunctionsVirtual MethodsVirtual TablesRule of Zero, Five, ThreeMultiple InheritanceDiamond InheritanceException HandlingExceptionsAccess ViolationsExit CodesLanguage Conceptsauto (Automatic Type Deduction)Type Castingconst_caststatic_castdynamic_castreinterpret_castUndefined Behavior (UB)Argument Dependent Lookup (ADL)MacrosName ManglingStandard Library + STLiostreamDate / TimeContainersIteratorsAlgorithmsMultithreadingTemplatesVariadic TemplatesTemplate SpecializationType TraitsSFINAEFull Template SpecializationPartial Template SpecializationIdiomsRAIIPimplNon-Copyable/Non-MoveableErase-RemoveCopy and SwapCopy on WriteCRTPStandardsC++11/14C++17C++20NewestC++0xLanguage ToolsDebuggersUnderstanding Debugger MessagesDebugging SymbolsWinDBgGDBCompilersUnderstand Compiler StagesDifferent Compilers and their FeaturesClang++/LLVMIntel C++MSVS C++GCCMinGWBuild SystemsCMAKEMakefileNinjaPackage ManagersConanNuGetvcpkgSpackWorking with LibrariesLibrary InclusionLicensingLibrariesBoostOpenCVPOCOprotobufgRPCfmtpybind11spdlogranges_v3tensorflowopenclFrameworksgtest/gmockQtCatch2Orbit ProfilerPyTorch C++Continue Learning with following relevant tracksBackend Roadmap