Model tasarımı
- C++ kursu
- Orta seviye
- Ders 65/116
- 6 dk
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
#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
#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ı?
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
Book b("Tutunamayanlar", "Oğuz Atay");
std::cout << b.____();
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 |