CodeBlanks Logo Icon CodeBlanks

Model tasarımı

Book ve Member sınıflarının iskeletini tasarlarsın.

Proje: Kütüphane uygulaması

Bu 5 derslik projede bir kütüphane uygulaması yapacaksın. Her derste bir parça ekleyecek, son derste çalışan bir konsol uygulaması elde edeceksin. Tüm parçalar Book ve Library sınıfları üzerine kuruludur.

Önceki gruplarda öğrendiğin sınıf, yapıcı metot ve iterator bilgilerini kullanacaksın. İlk derste Book sınıfının iskeletini tasarlayacaksın: title ve author alanları private olur, getTitle() ile dışarıdan okunur. Sonraki derslerin başlangıç kodu bu sınıfı içerecek.

Book sınıfı tasarımı

Book sınıfı iki private alan taşır: title ve author. Yapıcı metot (Book(std::string t, std::string a)) bu alanları başlatır. getTitle() ve getAuthor() metotları değerleri dışarıdan okumayı sağlar.

Örnek: Book b("Tutunamayanlar", "Oğuz Atay"); ile kitap oluşturursun. b.getTitle() ile başlığı okursun. Member initializer list (: title(t), author(a)) alanları verimli biçimde başlatır. const metotlar sınıfı değiştirmez; bu yüzden getter'lar const olur.

Uygulama Book sınıfını tanımla

Book adında bir sınıf tanımla. Private bölümde std::string title ve std::string author alanları olsun. Public bölümde yapıcı metot ve getTitle() metodu olsun. main içinde bir Book oluştur ve başlığı std::cout ile yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>

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

int main() {
    // Book oluştur ve title'ı yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>

class Book {
private:
    std::string title;
    std::string author;
public:
    Book(std::string t, std::string a) : title(t), author(a) {}
    std::string getTitle() const { return title; }
    std::string getAuthor() const { return author; }
};

int main() {
    Book b("Tutunamayanlar", "Oğuz Atay");
    std::cout << b.getTitle();
    return 0;
}

Beklenen çıktı

Tutunamayanlar

Soru ve cevaplar

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

1 Hangi üye private olmalı?

main.cpp
class Book {
    ???
    std::string title;
};
  • getTitle metodu
  • main fonksiyonu
  • title alanı Doğru cevap
  • std::cout

Açıklama: Veri alanı private olur, erişim metodu public olur.

2 Getter metodunu çağır

Soru
Book b("Tutunamayanlar", "Oğuz Atay");
std::cout << b.____();
Cevap
Book b("Tutunamayanlar", "Oğuz Atay");
std::cout << b.getTitle();

Açıklama: b.getTitle() ile başlık okunur.

3 Üyeyi rolüne eşle

Kavram Anlamı
std::string title Private veri
Book(std::string, std::string) Yapıcı metot
std::string getTitle() Getter metot
const Değiştirmez işaret

Orta seviye bölümündeki tüm dersler