Sökresultat för

Kurs om
C++ grundkurs

Nya standarden C++11/14/17 har tagit världen med storm och C++ har återtagit rollen som ett modernt systemutvecklingsspråk. I denna kurs bygger vi effektivt upp dina nya kunskaper och färdigheter i Modern C++.

5 dagar Beginner C++
C++ grundkurs

Den nya standarden C++11 har tagit världen med storm och C++ har återtagit rollen som ett modernt systemutvecklingsspråk. Det publiceras en ny C++ standard vart tredje år. Den senaste är C++23.

I denna kurs bygger vi effektivt upp dina nya kunskaper och färdigheter i Modern C++.

Detta får du lära dig på kursen

Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.

  • Programming in Modern C ++
  • Use the standard library efficiently
  • Design your own data types
  • Understand and apply insights regarding memory management in C++
  • Use auto (automatic type inference) almost always
  • Use lambda expressions to improve and simplify your code
  • Use std::string object productively
  • Work with STL containers, iterators and algorithms
  • Work file I/O and within the file system
  • Understand how to use and implement template based functions and classes
  • Understand how to use operator overloading
  • Understand when to use derived classes and virtual functions

Kursfakta

Här finner du alla detaljer om kursen.

  • Kursnamn

    C++ grundkurs
    C++ Basics (eng.)
  • Varaktighet

    5 dagar
  • Nivå

    Beginner
  • Målgrupp

    Tekniska programmerare
  • Förkunskapskrav

    Praktiska kunskaper i något kompilerande språk
  • Program & Verktyg

    • GNU C++ Compiler, version 12 or later
    • JetBrains CLion (_30 days trial_)
    • Ubuntu Linux
  • Publicerad

    1 januari 2010

Background and Overview

  • From cfront, Classic C++ and into Modern C++
  • Design objectives
  • Some myths and facts of C++

Scalar Types and Operators

  • Integral types
  • Floating-point types
  • Boolean
  • Characters
  • Type variations, such as short/long, signed/unsigned
  • Variables
  • Lexical scopes
  • Automatic type inference using auto

Composite Types

  • Native arrays
  • Struct
  • Classes (briefly)
  • Unions
  • Enum types
  • Name spaces
  • Type aliases

Statements

  • If statements
  • While loops
  • For loops
  • Foreach loops
  • Switch statements

Functions

  • Function syntax
  • Call by-value vs. call by-reference
  • Return by reference
  • Overloaded functions
  • Default parameters
  • Template functions
  • Extern declarations
  • Compilation units
  • Program organization
  • Linking C code

Lambda Expressions

  • Lambda syntax
  • Passing free variables by reference or value
  • Functions taking lambdas as parameters and/or returning lambdas

Pointers and references

  • Pointer declarations
  • Dereferencing operator
  • Address operator
  • Pointer arithmetics
  • Dangling pointers
  • The illusion of arrays
  • Nativ text strings and the danger of using them
  • Pointers to struct/class objects
  • Function pointers
  • References
  • Call-by reference
  • Return by-reference
  • What is move semantics
  • Rvalue references

Text Strings and Regexs

  • Why using std::string instead of nativ strings
  • Overview of std::string and its functions/operators
  • What is SSO (Short String Optimization) and how it is used
  • Working with legacy strings
  • Character oriented functions
  • Multi-line string literals
  • What is a regex
  • The regex support in modern C++
  • Matching text data to patterns
  • Searching using patterns
  • Replacing text fragments using patterns
  • Using regex iterators
  • Typical use cases
  • Splitting and joining strings

I/O Streams and Files

  • ostream / ofstream / ostringstream
  • istream / ifstream / istringstream
  • Bidirectional I/O with fstream
  • Manipulators
  • The input idiom
  • Line-oriented input
  • Word-oriented input
  • Character-oriented input

Helper Types

  • Pair
  • Tuple
  • Date-times
  • Durations
  • Clocks
  • Date formatting
  • Random number generators

STL Container Types

  • Sequence containers and typical methods
  • vector / dequeue / array
  • list / forward_list
  • Associative containers
  • Tree vs. hash implementations
  • Unique vs. multi-key versions
  • set / unordered_set
  • map / unordered_map
  • Container adapters

STL Iterators and Intervals

  • What is an iterator
  • What is a range and how is it used
  • Iterator categories
  • I/O iterators
  • End-point adapter functions

STL Algorithms

  • What is a std::* algorithm
  • The STL architecture
  • How to pass the business logic into algorithm functions
  • Understanding *_n and *_if suffixes of functions
  • Using functions with predicates
  • Using back_inserter iterators
  • Transforming and aggregating
  • Sorting
  • Populating data into containers

Classes (User Defined Types)

  • What is a user-defined type
  • Specification vs. implementation
  • Member variables and functions
  • Object creation (instantiation)
  • Visibility
  • Constructors
  • Destructor
  • Inline member functions
  • Member overloading
  • The pointer this

Class Member Forms

  • Class variables and functions
  • Member references
  • Read-only variables
  • Const marked functions
  • Inner classes
  • Friend declarations

Constructors and Destructors

  • Initialization
  • Default constructor
  • Destructor
  • Copy constructor
  • Assignment operator
  • Pitfalls
  • Standardized class form
  • Enforcing compiler-generated members
  • Deleting compiler-generated members
  • Type conversion constructor
  • Type conversion operator
  • What is move semantics
  • Move constructor
  • Move assigment operator

Heap Allocated Objects

  • What is dynamic memory anyway
  • Using the new and delete operators
  • Pitfalls
  • The placement variant of new

Exceptions

  • What is an exception
  • Throwing exceptions
  • Catching exceptions
  • The merits of automatic destruction during throw
  • Exceptions in the standard library
  • Pitfalls

Templates

  • What is a template
  • Function templates
  • Class Templates
  • Member function templates
  • Template parameter forms
  • Type equivalence
  • Template specialization
  • Pitfalls
  • Type traits
  • Using decltype()
  • Variadic templates

Operator Overloading

  • What is operator overloading
  • Syntax
  • Overloadable operators
  • Rule set
  • Overloading of arithmetic operators
  • Overloading of relational operators
  • Overloading of I/O operators
  • Overloading of ++/– operators
  • Overloading of the index operator
  • Overloading of the arrow operator
  • Overloading of the function-call operator

Inheritance and Virtual Functions

  • What is inheritance
  • Syntax
  • Protected visibility
  • Invocation of super-class members
  • References and pointers of root class type
  • Performing down-casts using dynamic_cast
  • Constructor initialization order
  • Base class visibility
  • Virtual member functions and why they are important
  • Abstract functions
  • Use of override and final specifiers
  • Multiple inheritance and why you need to be careful
  • Implementing Java-style interfaces in C++

The Pre-Processor

  • Include files
  • CPP constants
  • Pre-defined constants
  • Conditional compilation
  • Include guards
  • CPP macro functions
  • Stringification and name-concatenation
  • Assertions

Building C++ Applications

  • Compilation steps
  • What is an abstract syntax tree (AST)
  • The assembler
  • Inline assembly code
  • The linker
  • Name mangling of C++ names
  • Inspecting the linker symbol table
  • The loader
  • Tracing executions
  • Compiler flags for warnings
  • Compiler flags for optimizations
  • Compiler flags for debugging
  • Creating a static archive file
  • Creating a dynamic linked library

Build Tools and Open-Source Libraries

  • Make
  • GNU Autotools
  • CMake
  • Gradle
  • Doxygen
  • Google Test
  • Catch2
  • log4cxx
  • Boost
  • Poco

Standards and Guidelines

  • Tracking the standard
  • Tracking compilers and what they support
  • Online compilers
  • The big C++ conference (CPPcon)
  • The C++ Core Guidelines
  • GSL - The Guidelines Support Library

Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs, rabatteras tillkommande personer med 25%. Ni anmäler er till kursen en och en, men uppger samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår på samma faktura, den första till fullt pris och resterande till rabatterat pris.

Klassrumskurs

Datum för klassrumskurser

Du sitter bekvämt i ett av våra klassrum. I priset ingår tryckt kursmaterial, samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 26 000 kr + moms

Hoppsan då 😳
Just nu finns det inga datum tillgängliga. Titta förbi om några dagar eller kontakta oss och be oss lägga upp fler kursdatum.

Fjärrkurs

Datum för fjärrkurser

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser. I priset ingår kursmaterial som PDF.

Pris: 22 000 kr + moms

Background

C++ gk

5 dagar

Kursen vänder sig till tekniska programmerare och utgår från att deltagarna har praktiska kunskaper i något kompilerande språk.

Företagsanpassad kurs

Företagsanpassad kurs

Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska.

Kontakta oss för en offert

Företagsanpassad Kurs

Jens Riboe

Jens Riboe

Senior/Expert Software Developer

5.0 Instructor/Author Rating

50+
Courses Authored
1000+
Students Lectured
40+
Years Experience

Jag har programmerat sedan början på 1980-talet i en stor mängd olika programspråk och på olika plattformar. Har jobbat på både stora och små företag, både etablerade och startups, samt både inom och utom Sverige. Att skriva (elegant) programkod är det bästa jag vet. Denna erfarenhet och passion är den centrala komponenten i våra kurser. Något som gör oss unika på marknaden och att våra kunder återkommer år efter år för nya och fördjupade kunskaper.

View LinkedIn Profile

Relaterade Kurser

Background

CMake

CMake

CMake

Kurs om hur du bygger C/C++ applikationer och bibliotek med byggverktyget CMake

Background

C programmering

C gk

C programmering

Grundkurs i programspråket C