Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

zyavuz610/learnCPP_inKTU

 
 

Repository files navigation

Bu depo KTÜ Bilgisayar Mühendisliğinde okutulan Nesne Yönelimli Programlama dersinde görülen C++ programlama diline ilişkin konuları ve örnek kodları içermektedir.

Ders içeriği aşağıda verilen mantıksal sırada anlatılmaktadır. Konularla ilgili bilinmesi gereken temel konular kaynak kodların içerisinde açıklama satırları olarak eklenmiştir. Kaynak kodları verildiği sırada sırasıyla incelemek ve çalıştırmak konu bütünlüğünün korunması için önemlidir.

Her kaynak dosyaların isimlendirmesi şu şekildedir: XX.Y-abcd.cpp , burada XX(konunun işleneceği haftayı), Y(konunun o haftadaki konu sırasını), ve abcd(kaynak dosyanın içeriğini) ifade etmektedir.

Kaynak kodlar genel olarak 3 bölümden oluşur.

  • 1_cpp_fundamentals: Temel C++ konularını içermektedir.
  • 2_cpp_classes_and_objects: c++ nesne yönelimli programlama kavramlarını içerir.
  • 3_cpp_STL: C++ Standart Template Library (STL) konularını içerir
  • 4_cpp_advanced_topics: İleri seviye C++ konuları

Bunların dışında;

  • 5_cpp_examples: farklı kaynaklardan öğrencilerin kullanımı için paylaşılan tüm kodları içerir.

Ders İçeriği

Temel C++ Konuları

  • Giriş - Temel Konular
    • Ekrana çıktı almak (Hello world), C/C++ arasındaki farklar, C++'daki yenilikler
    • Veri Türleri (int, float, char, ...)
    • Değişken Tanımlama
    • static değişkenler
    • Yerel, gloabl, formal değişkenler
    • Sabitler (constants (const), litterals, #define ...)
    • Operatörler ve Öncelikleri
  • Karar İfadeleri
    • if, if-else, if-elseif-else
    • switch-case
    • koşul operatörü ( ? : )
  • Döngü İfadeleri
    • for, while, do-while
  • Diziler
    • 1D diziler (vektör)
    • 2D diziler (matris)
    • 3D ve daha çok boyutlu diziler (tensör)
    • Stringler
      • C Style string
      • std::string
  • Giriş-Çıkış
    • Standart girdi-çıktı
      • cin, cout
      • Basit formatlı girdi-çıktı
      • İleri düzey girdi çıktı
    • Dosya İşlemleri
      • Dosya okuma, yazma (fstream,ifstream, ofstream)
      • Dosya açma modları
      • Sıralı erişim ile dosya okuma/yazma
      • Rasgele erişimli dosyalar
      • Binary dosya okuma/yazma
  • Pointer ve Referans
    • Basit pointer işlemleri, * ve & operatörü
    • Dizi-pointer ilişkisi
    • pointer aritmetiği
    • Referanslar
    • dinamik bellek yönetimi (new, delete) (1D, 2D)
  • Yapılar
    • struct, struct dizisi
    • struct composition
    • enum
    • union
  • Fonksiyonlar
    • Fonksiyon tanımlama, çağırma, parametre gönderme, geriye değer döndürme
    • Fonksiyona dizi gönderme
    • Fonksiyondan dizi geri döndürme
  • Diğer Konular
    • namespaces

Nesne Yönelimli Programlama (C++)

  • sınıf ve nesne kavramı (class and object)
  • class tanımlama
    • üye veri ve üye fonksiyonları
  • erişim düzenleyiciler (access modifiers)
    • public, protected, private
  • getters, setters
  • constructors - yapıcılar
    • parametresiz, parametreli
    • kopya yapıcı (copy constructor)
  • destructors - yıkıcılar
  • Pointers
    • nesneye pointer (pointer to objects), nesne tanımlama (değişken ve pointer ile)
    • dinamik bellek yönetimi -> new, delete
    • this işaretçisi
    • nesne dizileri, yapıcı fonksiyonların çağrılması
    • fonksiyonlar ve nesneler
      • parametre gönderme,
      • nesne geri döndürme
    • inline functions
    • friend functions
    • static members
    • overloading - aşırı yükleme
      • function overloading
      • operator overloading
    • oluşum ve miras (composition and inheritance)
      • oluşum (composition)
      • 1 seviyeli miras
      • çok seviyeli miras
    • polymorphizm (çok biçimlilik)
      • polymorphizm
      • compile and run-time binding
      • virtual functions, abstract classes
    • templates
      • template functions
      • template classes
    • Diğer Konular
      • tip dönüşümleri
      • ön işlemci komutları
      • multi-threading (çok süreçli) programlama

Standart Template Library (STL)

  • containers
  • pair
  • vector
  • list
  • queue
  • stack
  • iterators

Tavsiye Edilen Siteler

Bu sitelerden bir ve/veya birkaçından seviye atlamak (c++ dili için) serbest ödev için verilecek eşik ödevinden muafiyet getirebilir. Bu yüzden boş kaldıkça bu araçları kullanarak alıştırma yapın, seviyeleri tamamlamaya çalışın.

Yararlı Kaynaklar

Haftalara Göre Ders Planları (Müfredat)

Her gün değişen ve gelişen bilişim dünyasında KTÜ Bilgisayar Mühendisliğindeki "Nesne Yönelimli Programlama" isimli derste anlatılan C++ diline ilişkin ders notları, yazılan kodlar, verilen örnekler ve müfredat kısmi değişikliklere uğramaktadır.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.9%
  • C 0.1%