CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

Uzman finali mini uygulamasının iskeletini tasarlarsın.

Proje: Uzman finali

Bu 5 derslik uzman finali projesinde tüm uzman konularını tek bir Engine sınıfında birleştireceğiz. Her ders bir parça ekler: önce template metaprogramming ile derleme zamanı faktöriyel, sonra std::thread ve std::atomic ile paralel toplam, ardından volatile ile bellek eşlemeli I/O taklidi ve sonunda extern "C" ile C-uyumlu arayüz.

Her dersin başlangıç kodu, önceki dersin çözümünü içerecek. Böylece proje aşama aşama büyüyecek ve son derste çalışan bir mini uygulama elde edeceğiz. Çıktı her dersle bir satır büyür.

Engine sınıfı iskeleti

Önce boş bir Engine sınıfı tanımlayalım. İçine bir static const int Version = 1; sabiti koyarız; bu, projenin sürümünü derleme zamanında taşır. Sonraki derslerde bu iskeletin üzerine yeni metotlar ekleyeceğiz.

Örnek: class Engine { public: static const int Version = 1; };. main içinde std::cout << "Hazır"; yazarak iskeletin çalıştığını doğrularız. Çıktı tek satırdır: Hazır. Sonraki derslerde her ekleme yeni bir satır getirecek.

Uygulama Engine sınıfı iskeletini tanımla

Engine adında bir sınıf tanımla. public: altında static const int Version = 1; olsun. main içinde std::cout << "Hazır"; yaz.

Başlangıç kodu

main.cpp
#include <iostream>

// Engine sınıfını buraya tanımla

int main() {
    // Hazır mesajını yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Engine {
public:
    static const int Version = 1;
};

int main() {
    std::cout << "Hazır";
    return 0;
}

Beklenen çıktı

Hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bu projede neden tek bir Engine sınıfı kullanıyoruz?

main.cpp
class Engine { public: static const int Version = 1; };
  • Bellek tüketimini sıfırlamak için
  • Derleyiciyi hızlandırmak için
  • Birden fazla konuyu tek çatı altında toplamak için Doğru cevap
  • İşletim sistemini değiştirmek için

Açıklama: Tek sınıf, template, paralel iş, kayıt erişimi ve C arayüzünü bir arada tutar.

2 Sınıf adını tamamla

Soru
class ____ { public: static const int Version = 1; };
Cevap
class Engine { public: static const int Version = 1; };

Açıklama: Sınıf adı PascalCase yazılır: Engine.

3 Parçayı rolüne eşle

Kavram Anlamı
class Engine Sınıf iskeleti
static const int Version Derleme zamanı sabiti
std::cout Çıktı yazma
"Hazır" İlk çıktı

Uzman bölümündeki tüm dersler