Skip to content

semerdzhiev/oop-samples

Repository files navigation

Примери за обектно-ориентирано програмиране на C++

Проектът съдържа примери, които демонстрират различни особености на обектно-ориентираното програмиране на C++.

Примерите са групирани в различни директории, според темата, към която се отнасят (напр. динамичен масив).

Списък на примерите

Array

  1. Array - Пример за клас представящ динамично заделен масив.
  2. Proxy and Iterator - Разширява примера Array, като добавя прокси клас, който се използва в имплементацията на оператора [] и итератори.
  3. Templates - Разширява примера Array, като прави класа шаблонен.

Command Line

  1. List Command Line Arguments - Извежда на екрана всички аргументи подадени от командния ред.

Dynamic Memory

  1. Two-Dimensional Array Allocation With Exceptions - Демонстрира динамично заделяне на двумерен масив. Примерът включва и обработка на изключенията хвърлени от new.
  2. Two-Dimensional Array Allocation With Nothrow - Демонстрира динамично заделяне на двумерен масив. В примера new се използва с nothrow. Демонстрира се и употребата на errno и strerror

Exceptions

  1. Exceptions - Пример за използване на изключения. Примерът позволява да се експериментира с хвърляне на различни типове и няколко точки, в които те се прихващат.

Figures

  1. Figures - Пример за полиморфизъм и фабрика (factory) в C++.

Files

  1. File Size - Прост пример за намиране на размер на файл.

###Patterns

  1. Singleton - Пример за реализация на шаблона синглетон (singleton).

Rational Number

  1. Rational Number With Structures - Реализация на рационално число със структура. Включена е и нормализираща функция, която коригира знаците на числителя и знаменателя и ги съкращава на техния НОД.
  2. Rational Number With Classes - Обектно-ориентирана реализация на рационално число. В примера е включена възможност за автоматична нормализация на числото след всяка операция, която го променя.

Static

  1. Static Inside a Function - Демонстрира функция, която брои колко пъти е била извикана при изпълнението на програмата.
  2. Static Inside a Class - Демонстрира клас, който брои колко негови обекти са били създадени при изпълнението на програмата.

Structures

  1. Alignment and padding - Демонстрира начина, по който съдържанието на една структура се организира в паметта.

###Templates

  1. Box - Пример за шаблонен клас Box (кутия), който може да съдържа елемент от произволен тип и специализация на този клас за char*.
  2. Box with explicit instantiation - Пример за разделяне на кода на един шаблон в .h и .cpp файлове и експлицитно инстанциране.
  3. Functions - Примери за шаблони на функции, специализация и частична специализация (partial specialization)

Union

  1. Anonymous Union - Демонстрира работата с анонимни обединения.
  2. Union - Демонстрира начина, по който едно обединение (union) се организира в паметта, а също и някои типични случаи на употреба на изключения.

Virtual Functions

  1. Virtual Functions - Пример илюстриращ виртуалните функции в C++.

About

Samples in C++ for object-oriented programming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors