Podcast
Questions and Answers
Aşağıdakilerden hangisi iyi bir programın özelliklerinden biri değildir?
Aşağıdakilerden hangisi iyi bir programın özelliklerinden biri değildir?
- Kaynakların verimli kullanılması
- Kolay kullanılabilmesi
- Güvenilir olması
- Yüksek karmaşıklıkta olması (correct)
Bir programın 'taşınabilir' (portable) olması ne anlama gelir?
Bir programın 'taşınabilir' (portable) olması ne anlama gelir?
- Çok az bellek kullanması
- Yüksek hızlı işlem yapabilmesi
- Farklı bilgisayar sistemlerinde çalıştırılabilmesi (correct)
- Farklı programlama dillerinde yazılabilmesi
Aşağıdakilerden hangisi 'uygunluk' (compatibility) özelliğini en iyi tanımlar?
Aşağıdakilerden hangisi 'uygunluk' (compatibility) özelliğini en iyi tanımlar?
- Programın güvenli olması
- Programın hızlı çalışması
- Programın az yer kaplaması
- Programın farklı sistemlerde aynı şekilde çalışabilmesi (correct)
Bir programın 'doğruluğu' (correctness) hangi koşulda sağlanmış olur?
Bir programın 'doğruluğu' (correctness) hangi koşulda sağlanmış olur?
'Genişleyebilirlik' (Extendibility) özelliği bir program için ne ifade eder?
'Genişleyebilirlik' (Extendibility) özelliği bir program için ne ifade eder?
Aşağıdakilerden hangisi 'tekrar kullanım' (reusability) ilkesine bir örnektir?
Aşağıdakilerden hangisi 'tekrar kullanım' (reusability) ilkesine bir örnektir?
Bir programda 'kontrol edilebilirlik' (verifiability) neyi ifade eder?
Bir programda 'kontrol edilebilirlik' (verifiability) neyi ifade eder?
'Bütünlük' (integrity) özelliği bir yazılımda neyi garanti eder?
'Bütünlük' (integrity) özelliği bir yazılımda neyi garanti eder?
Aşağıdakilerden hangisi 'beraber çalışma' (interoperability) özelliğine bir örnektir?
Aşağıdakilerden hangisi 'beraber çalışma' (interoperability) özelliğine bir örnektir?
Makine dili ile yazılmış bir program nasıldır?
Makine dili ile yazılmış bir program nasıldır?
Assembler dili, makine dilinden hangi özelliğiyle ayrılır?
Assembler dili, makine dilinden hangi özelliğiyle ayrılır?
Yüksek seviyeli bir programlama dili için aşağıdakilerden hangisi doğrudur?
Yüksek seviyeli bir programlama dili için aşağıdakilerden hangisi doğrudur?
C++ programlama dili hangi programlama dilinden türetilmiştir?
C++ programlama dili hangi programlama dilinden türetilmiştir?
ANSI C standardı neyi ifade eder?
ANSI C standardı neyi ifade eder?
C++, C'ye hangi önemli özelliği kazandırmıştır?
C++, C'ye hangi önemli özelliği kazandırmıştır?
Aşağıdakilerden hangisi C++ programlama dilinin temel yapı taşlarından değildir?
Aşağıdakilerden hangisi C++ programlama dilinin temel yapı taşlarından değildir?
C++ Standart Kütüphanesi hangi özelliği sunar?
C++ Standart Kütüphanesi hangi özelliği sunar?
Bir C++ programının geliştirme aşamaları sırasıyla düşünüldüğünde, 'derleme' (compilation) aşamasından önce hangi aşama gelir?
Bir C++ programının geliştirme aşamaları sırasıyla düşünüldüğünde, 'derleme' (compilation) aşamasından önce hangi aşama gelir?
C++'da '#include ' ifadesi ne işe yarar?
C++'da '#include
C++'da 'std::cout' ifadesi neyi temsil eder?
C++'da 'std::cout' ifadesi neyi temsil eder?
C++'da kaçış (escape) karakterleri ne amaçla kullanılır?
C++'da kaçış (escape) karakterleri ne amaçla kullanılır?
Aşağıdaki kaçış karakterlerinden hangisi bir sonraki tab noktasına gitmeyi sağlar?
Aşağıdaki kaçış karakterlerinden hangisi bir sonraki tab noktasına gitmeyi sağlar?
Aşağıdaki C++ ifadelerinden hangisi 'x' değişkeninin 'y' değişkeninden büyük veya eşit olup olmadığını kontrol eder?
Aşağıdaki C++ ifadelerinden hangisi 'x' değişkeninin 'y' değişkeninden büyük veya eşit olup olmadığını kontrol eder?
Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) temel bir özelliğidir?
Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) temel bir özelliğidir?
'Paketleme' (Encapsulation) OOP'de ne anlama gelir?
'Paketleme' (Encapsulation) OOP'de ne anlama gelir?
'Soyutlama' (Abstraction) OOP'de neyi ifade eder?
'Soyutlama' (Abstraction) OOP'de neyi ifade eder?
'Kalıtım' (Inheritance) OOP'de ne demektir?
'Kalıtım' (Inheritance) OOP'de ne demektir?
'Çok biçimlilik' (Polymorphism) OOP'de ne anlama gelir?
'Çok biçimlilik' (Polymorphism) OOP'de ne anlama gelir?
Bir sınıfta (class) 'public' olarak tanımlanan bir üye için aşağıdakilerden hangisi doğrudur?
Bir sınıfta (class) 'public' olarak tanımlanan bir üye için aşağıdakilerden hangisi doğrudur?
C++'da 'struct' yapısı ne için kullanılır?
C++'da 'struct' yapısı ne için kullanılır?
C++'da bir 'struct' içindeki üyelere nasıl erişilir?
C++'da bir 'struct' içindeki üyelere nasıl erişilir?
C++'da bir sınıfın (class) 'private' bölümünde tanımlanan bir değişkene nasıl erişilebilir?
C++'da bir sınıfın (class) 'private' bölümünde tanımlanan bir değişkene nasıl erişilebilir?
C++'da bir sınıfın 'constructor' fonksiyonu ne işe yarar?
C++'da bir sınıfın 'constructor' fonksiyonu ne işe yarar?
C++'da 'destructor' fonksiyonunun temel amacı nedir?
C++'da 'destructor' fonksiyonunun temel amacı nedir?
C++'da '::' (scope resolution) operatörü ne için kullanılır?
C++'da '::' (scope resolution) operatörü ne için kullanılır?
'Class scope' ve 'file scope' arasındaki temel fark nedir?
'Class scope' ve 'file scope' arasındaki temel fark nedir?
C++'da erişim belirteçlerinden hangisi (public, private, protected) hiçbir şey belirtilmezse varsayılan olarak kullanılır?
C++'da erişim belirteçlerinden hangisi (public, private, protected) hiçbir şey belirtilmezse varsayılan olarak kullanılır?
C++'da 'friend' fonksiyonlar ne işe yarar?
C++'da 'friend' fonksiyonlar ne işe yarar?
C++'da bir sınıfın arayüzü (interface) ile gerçekleştirimi (implementation) neden ayrılır?
C++'da bir sınıfın arayüzü (interface) ile gerçekleştirimi (implementation) neden ayrılır?
C++ programlama dilinde yapısal programlama yaklaşımı ile ilgili olarak aşağıdakilerden hangisi doğrudur?
C++ programlama dilinde yapısal programlama yaklaşımı ile ilgili olarak aşağıdakilerden hangisi doğrudur?
Aşağıdakilerden hangisi iyi bir programda bulunması gereken özelliklerden biridir?
Aşağıdakilerden hangisi iyi bir programda bulunması gereken özelliklerden biridir?
Bir programın 'güvenilir' (robust) olması ne anlama gelir?
Bir programın 'güvenilir' (robust) olması ne anlama gelir?
Aşağıdakilerden hangisi 'tekrar kullanım' (reusability) ilkesine uygun değildir?
Aşağıdakilerden hangisi 'tekrar kullanım' (reusability) ilkesine uygun değildir?
Aşağıdakilerden hangisi 'uygunluk' (compatibility) özelliğinin bir parçası değildir?
Aşağıdakilerden hangisi 'uygunluk' (compatibility) özelliğinin bir parçası değildir?
Aşağıdakilerden hangisi bir programın 'kaynak kullanımının verimliliği' (efficiency) ile doğrudan ilişkilidir?
Aşağıdakilerden hangisi bir programın 'kaynak kullanımının verimliliği' (efficiency) ile doğrudan ilişkilidir?
Aşağıdakilerden hangisi 'makine dili' için doğrudur?
Aşağıdakilerden hangisi 'makine dili' için doğrudur?
Assembler dilinde yazılmış bir programı makine diline çevirmek için ne kullanılır?
Assembler dilinde yazılmış bir programı makine diline çevirmek için ne kullanılır?
Aşağıdakilerden hangisi yüksek seviyeli bir programlama dilinin avantajlarından biridir?
Aşağıdakilerden hangisi yüksek seviyeli bir programlama dilinin avantajlarından biridir?
C++ dilinin tarihçesi düşünüldüğünde, 'Nesne Yönelik Programlama (OOP)' yetenekleri hangi programlama diline kazandırılmıştır?
C++ dilinin tarihçesi düşünüldüğünde, 'Nesne Yönelik Programlama (OOP)' yetenekleri hangi programlama diline kazandırılmıştır?
C++ programlama dilinin temelinde hangi kavram bulunur?
C++ programlama dilinin temelinde hangi kavram bulunur?
C++ programlama dilinde 'class' (sınıf) yapısı neyi ifade eder?
C++ programlama dilinde 'class' (sınıf) yapısı neyi ifade eder?
C++'da bir sınıfın (class) içinde tanımlanan fonksiyonlara ne ad verilir?
C++'da bir sınıfın (class) içinde tanımlanan fonksiyonlara ne ad verilir?
C++'da geliştirilen bir programın çalıştırılabilir hale gelmesi için hangi adımlar gereklidir?
C++'da geliştirilen bir programın çalıştırılabilir hale gelmesi için hangi adımlar gereklidir?
C++ programlama dilinde, aşağıdaki ifadelerden hangisi ekrana bir metin yazdırmak için kullanılır?
C++ programlama dilinde, aşağıdaki ifadelerden hangisi ekrana bir metin yazdırmak için kullanılır?
C++'da '\n' kaçış karakteri ne işe yarar?
C++'da '\n' kaçış karakteri ne işe yarar?
C++ dilinde aşağıdaki karşılaştırma operatörlerinden hangisi 'küçük veya eşit' anlamına gelir?
C++ dilinde aşağıdaki karşılaştırma operatörlerinden hangisi 'küçük veya eşit' anlamına gelir?
Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) temel prensiplerinden biri değildir?
Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) temel prensiplerinden biri değildir?
Nesne yönelimli programlamada (OOP) 'paketleme' (encapsulation) ne anlama gelir?
Nesne yönelimli programlamada (OOP) 'paketleme' (encapsulation) ne anlama gelir?
Aşağıdakilerden hangisi nesne yönelimli programlamada (OOP) 'soyutlama' (abstraction) kavramını en iyi açıklar?
Aşağıdakilerden hangisi nesne yönelimli programlamada (OOP) 'soyutlama' (abstraction) kavramını en iyi açıklar?
Nesne yönelimli programlamada kalıtım'(Inheritance) ne anlama gelir?
Nesne yönelimli programlamada kalıtım'(Inheritance) ne anlama gelir?
Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) önemli bir özelliği olan 'çok biçimlilik' (polymorphism) kavramını ifade eder?
Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) önemli bir özelliği olan 'çok biçimlilik' (polymorphism) kavramını ifade eder?
C++'da bir 'struct' ve 'class' arasındaki temel fark nedir?
C++'da bir 'struct' ve 'class' arasındaki temel fark nedir?
C++'da bir sınıfın (class) içinde tanımlanan 'private' bir değişkene doğrudan nasıl erişilir?
C++'da bir sınıfın (class) içinde tanımlanan 'private' bir değişkene doğrudan nasıl erişilir?
C++'da bir sınıfın 'constructor' fonksiyonu için aşağıdakilerden hangisi doğrudur?
C++'da bir sınıfın 'constructor' fonksiyonu için aşağıdakilerden hangisi doğrudur?
C++ programlama dilinde, bir sınıfın 'destructor' fonksiyonu hangi durumda otomatik olarak çağrılır?
C++ programlama dilinde, bir sınıfın 'destructor' fonksiyonu hangi durumda otomatik olarak çağrılır?
C++'da '::' (scope resolution) operatörünün temel kullanım amacı nedir?
C++'da '::' (scope resolution) operatörünün temel kullanım amacı nedir?
C++'da bir sınıfın 'private' ve 'public' bölümleri arasındaki temel fark nedir?
C++'da bir sınıfın 'private' ve 'public' bölümleri arasındaki temel fark nedir?
Flashcards
Doğruluk (Correctness)
Doğruluk (Correctness)
Verilen görevin tam olarak yerine getirilmesidir. Yazılımdan beklenenlerin belirtilmesi gerekir.
Güvenilirlik (Robustness)
Güvenilirlik (Robustness)
Beklenmedik nedenlerden programın çalışmasının kesilmemesi, yanlış işlemler yapmamasıdır.
Genişleyebilme (Extendibility)
Genişleyebilme (Extendibility)
İleri aşamalarda görevlerin değiştirilmesi veya yenilerinin eklenmesi kolay olmalıdır.
Tekrar kullanım (Reusability)
Tekrar kullanım (Reusability)
Signup and view all the flashcards
Uygunluk (Compatibility)
Uygunluk (Compatibility)
Signup and view all the flashcards
Kaynakların kullanımı (Efficiency)
Kaynakların kullanımı (Efficiency)
Signup and view all the flashcards
Taşınabilirlik (Portability)
Taşınabilirlik (Portability)
Signup and view all the flashcards
Kontrol Edilebilirlik (Verifiability)
Kontrol Edilebilirlik (Verifiability)
Signup and view all the flashcards
Bütünlük (Integrity)
Bütünlük (Integrity)
Signup and view all the flashcards
Kolay Kullanım (Easy use)
Kolay Kullanım (Easy use)
Signup and view all the flashcards
Beraber çalışma (Interoperability)
Beraber çalışma (Interoperability)
Signup and view all the flashcards
Makine Dili
Makine Dili
Signup and view all the flashcards
Assembler
Assembler
Signup and view all the flashcards
Yüksek Seviyeli Diller
Yüksek Seviyeli Diller
Signup and view all the flashcards
Class (Sınıf) ve Function (Fonksiyon)
Class (Sınıf) ve Function (Fonksiyon)
Signup and view all the flashcards
C++
C++
Signup and view all the flashcards
Yorum Satırları
Yorum Satırları
Signup and view all the flashcards
Önişlemci Komutu
Önişlemci Komutu
Signup and view all the flashcards
main() Fonksiyonu
main() Fonksiyonu
Signup and view all the flashcards
std::cout
std::cout
Signup and view all the flashcards
\n (Yeni Satır Karakteri)
\n (Yeni Satır Karakteri)
Signup and view all the flashcards
'escape' Karakteri
'escape' Karakteri
Signup and view all the flashcards
Operatörü
Operatörü
Signup and view all the flashcards
< Operatörü
< Operatörü
Signup and view all the flashcards
== Operatörü
== Operatörü
Signup and view all the flashcards
!= Operatörü
!= Operatörü
Signup and view all the flashcards
Nesne Yönelimli Programlama (OOP)
Nesne Yönelimli Programlama (OOP)
Signup and view all the flashcards
Nesne
Nesne
Signup and view all the flashcards
Soyutlama (Abstraction)
Soyutlama (Abstraction)
Signup and view all the flashcards
Paketleme (Encapsulation)
Paketleme (Encapsulation)
Signup and view all the flashcards
Kalıtım (Inheritance)
Kalıtım (Inheritance)
Signup and view all the flashcards
Çoklubenzeşim (Polymorphism)
Çoklubenzeşim (Polymorphism)
Signup and view all the flashcards
Yapısal Programlama (Structured-Programming)
Yapısal Programlama (Structured-Programming)
Signup and view all the flashcards
Veri ve Fonksiyonların Saklanması
Veri ve Fonksiyonların Saklanması
Signup and view all the flashcards
Struct Yapısı
Struct Yapısı
Signup and view all the flashcards
Struct Üye Adları
Struct Üye Adları
Signup and view all the flashcards
Struct Veri Tipi
Struct Veri Tipi
Signup and view all the flashcards
Constructor
Constructor
Signup and view all the flashcards
Destructor
Destructor
Signup and view all the flashcards
‘Binary scope resolution’ Operatörü (::)
‘Binary scope resolution’ Operatörü (::)
Signup and view all the flashcards
‘Class scope’
‘Class scope’
Signup and view all the flashcards
‘File scope’
‘File scope’
Signup and view all the flashcards
‘Function Scope’
‘Function Scope’
Signup and view all the flashcards
Public
Public
Signup and view all the flashcards
Private
Private
Signup and view all the flashcards
Hizmet fonksiyonları
Hizmet fonksiyonları
Signup and view all the flashcards
Erişim fonksiyonları
Erişim fonksiyonları
Signup and view all the flashcards
Study Notes
İyi Bir Programın Özellikleri
- Doğruluk (Correctness), bir programın verilen görevi tam olarak yerine getirmesi anlamına gelir
- Yazılımdan beklenenler, yazmaya başlamadan önce belirtilmelidir
- Program çıktıktan sonra belirlenen özelliklerin sağlanması önemlidir
- Güvenilirlik (Robustness), programın beklenmedik durumlarda çalışmasının kesilmemesi ve yanlış işlemler yapmaması demektir
- Programcı hatalarından kaynaklanan kesintilerin önlenmesi için tedbirler alınmalıdır
İyi Bir Programın Diğer Özellikleri
- Genişleyebilme (Extendibility), programın ilerleyen aşamalarda kolayca değiştirilebilir veya yeni özellikler eklenebilir olmasıdır
- Basit tasarımlar karmaşık tasarımlardan kaçınarak buna yardımcı olur
- Tekrar Kullanım (Reusability), tasarımın aynı program içinde veya farklı programlarda tekrar kullanılabilir olmasıdır
- Örneğin, bir projede kullanılan elemanlar veya modüller yeni projelerde tekrar değerlendirilebilir
İyi Bir Programın Ek Özellikleri ve Kaynak Kullanımı
- Uygunluk (Compatibility), programın farklı bilgisayar sistemlerinde aynı ortak özelliklere sahip olmasını ifade eder
- Çeşitli standartların kabul edilip uygulanması gerekir
- Veri dosyası formatının, veri yapılarının ve kullanıcı arayüzünün uyumluluğu önemlidir
- Kaynakların Kullanımı (Efficiency), bilgisayarın tüm ekipmanlarının en iyi şekilde kullanılması anlamına gelir
- Kaynakları eksik kullanmamak ve diğer programların kullanımını engellememek önemlidir
Program Taşınabilirliği
- Taşınabilirlik (Portability), bir yazılımın geliştirildiği ortamdan farklı bir bilgisayar ortamında çalıştırılabilmesidir
- Kaynak uyumlu (Source Compatible) programlar farklı bir sistemde tekrar derlenebilir
- İkili kod uyumlu (Binary Compatible) programlar, derlenmiş bir dosyayı farklı bir ortama taşıyarak çalıştırabilir
- Kaynak kodun taşınabilirliği, yazılım geliştirme açısından önemlidir
Program Kontrol Edilebilirliği ve Bütünlüğü
- Kontrol Edilebilirlik (Verifiability), programın hatalı durumlarda kullanıcıya ve programcıya yeterli bilgi sağlamasıdır
- Bütünlük (Integrity), yazılımın istenmeyen erişimlere ve değişikliklere karşı korunmasıdır
- Programın veri veya indeks dosyalarının kaybolmasını tespit edip raporlaması bir örnektir
Kullanım Kolaylığı ve Birlikte Çalışabilirlik
- Kolay Kullanım (Easy use), yazılımın kullanıcı tarafından kolayca öğrenilmesi, sorunsuz kullanılması ve hataların düzeltilebilmesidir
- Beraber Çalışma (Interoperability), bir yazılımın ihtiyaç duyduğu diğer yazılımları çağırabilmesi veya diğer yazılımlar tarafından çağrılabilmesidir
- Bu, iki programın veri alışverişinde bulunabilmesini ifade eder
Programlama Dilleri
- Makine Dili: Tüm komutlar sayılarla ifade edilir (+1300042774, +1400593419, +1200274027)
- Assembler: Temel bilgisayar işlemleri kısaltmalarla ifade edilir (LOAD BASEPAY, ADD OVERPAY, STORE GROSSPAY)
- Yüksek Seviyeli Diller: Komutlar konuşma diline benzer ve genel matematik notasyonunu kullanır (grossPay = basePay + overTimePay)
C++'ın Tarihçesi
- C++, C dilinden geliştirilmiştir
- ANSI C, C için dünya çapında kabul gören bir standarttır
- C++, C'ye Nesneye Yönelik Programlama (OOP) yetenekleri eklemiştir
- Bu, programların daha kolay anlaşılmasını ve düzeltilmesini sağlar
C++'ın Tarihsel Gelişimi
- 1979 (Mayıs): C with Classes ile ilgili çalışmalar başladı
- 1979 (Ekim): İlk "C with Classes" derleyicisi yazıldı
- 1983 (Ağustos): İlk C++ derleyicisi oluşturuldu
- 1983 (Aralık): Dil C++ adını aldı
- 1989: ANSI X3J16 komitesi oluşturuldu
- 1994: ANSI/ISO standart taslağı hazırlandı
- 1996: ANSI/ISO tarafından 2. standart taslağı onaylandı
- 1998: ISO C++ dil standartları kabul edildi
C++'ın Yapısı
- C++ programları, class (sınıf) ve function (fonksiyon) adı verilen parçalardan oluşur
- C++ Standart Kütüphanesi, programcıların kullanabileceği geniş bir sınıf ve fonksiyon koleksiyonu sunar
Bir Programın Aşamaları
- Bir programın aşamaları şunlardır: Yazım, Önişleme, Derleme, Bağlama, Yükleme ve Çalıştırma
- Bu aşamalar Editor, Preprocessor, Compiler, Linker, Loader ve CPU gibi araçlar kullanılarak gerçekleştirilir
- Örnek komutlar: g++ -c test.cpp, g++ -o test test.o -lm, ./test
C++ Programlamaya Giriş
- C++, C ve C++ platformları arasında taşınabilir kodlar oluşturur
- Nesne yönelimli programlama yeteneklerinin yanı sıra yapısal ve disiplinli programlama özellikleri sunar
Bir C++ Programı Örneği
- Programda yorum satırları ve önişlemci komutları bulunur
main()
fonksiyonu, programın ana bölümüdür ve fonksiyon{
ile başlar,}
ile biterstd::cout << "Welcome to C++!\n";
komutu, karakter dizisini ekrana yazdırır ve satır sonu eklerreturn 0;
ile fonksiyondan çıkılır
Karşılaştırma Operatörleri
>
: büyüktür<
: küçüktür>=
: büyük veya eşittir<=
: küçük veya eşittir==
: eşittir!=
: eşit değildir
Nesne Yönelimli Programlama (OOP)
- OOP, dünyayı düşündüğümüz doğallıkla programlama yapabilmemizi sağlar
- OOP ile geliştirilen programlar daha güvenilir, dayanıklı ve kolay geliştirilebilir
- Nesne, belirlenmiş bir işlevi yerine getirebilecek altyapıyı hazırlayan ve çeşitli fonksiyonlar içeren bir yapıdır
Nesne Nedir?
- Gerçek dünyadaki nesnelere benzeyen, tekrar kullanılabilir yazılım parçalarıdır (zaman, ses, video nesnesi gibi)
- Daha anlaşılır ve değiştirilmesi kolay bir yapı sunarlar
- Belirlenmiş işlevleri yerine getiren ve değişkenleri bünyesinde barındıran bu yapı, fonksiyonları bünyesinde bulundurmalıdır; bu özelliğe Paketleme (Encapsulation) denir
- Paketlenecek fonksiyonların nasıl bir işlev göstereceği belirtilmeden, sadece nasıl kullanılacağının belirtilmesine Soyutlama (Abstraction) adı verilir
- Paketleme ve Soyutlama, bir nesneyi tanımlamak için yeterli iki özelliktir
Nesne: Türeme ve Kalıtım
- Türeme (Derivation), bir nesnenin başka bir nesneden (taban nesne) özelliklerini almasıdır
- Kalıtım (Inheritance), türeyen nesnelerin taban nesnenin özelliklerini devralmasıdır
- Türeyen nesneler, yeni özellikler ekleyebilir veya devraldığı özellikleri geliştirebilir
Nesne: Benzerlik (Çoklubenzeşim/Polymorphism)
- Nesneler arasında benzer özellikler olabilir ve bu özellikler aynı isimle anılır
- Çoklubenzeşim (Polymorphism), benzer isimde fakat farklı nesnelerin üyesi olan üyelerin ortaya çıkmasına neden olur ve nesneler arasındaki benzerlikleri yansıtır
Nesne Özellikleri ve Davranışları
- Nesnelerin özellikleri (renk, şekil, boyut, genişlik, yükseklik vb.) vardır
- Nesnelerin davranışları (Behaviors, Actions) vardır; her nesnenin kendine özgü davranışları vardır (top yuvarlanır, ağaç yanar)
- Yeni nesneler Mirasla birlikte eski (parent) nesnelerin bazı özellik ve yöntemlerine sahip olurlar
Nesne Özellikleri: Bilgi Gizleme, Soyutlama, Sınıflar
- Bilgiler Gizlenebilir: Nesnenin iş görmesi için diğer nesneler hakkında bilgi sahibi olması şart değildir
- Soyutlama (Abstraction) sayesinde bir nesne, spesifik tanımlamalar ve sadece o nesneye ait detaylardan kaçınarak, ayrıntılarda boğulmadan kullanılabilir
- Sınıflar (Class) nesnelerin temelini oluşturur
Yapısal Programlama (Structured-Programming)
- Anlaması, test etmesi, değiştirmesi kolay programlar yazmayı teşvik eder ve kolaylaştırır
- Her zaman sadece bir girişi, bir çıkışı olan program yapıları kullanır
- Kuralları: En basit şema (flowchart) ile başla, her hangi bir işlem birbirini takip eden iki işlem şeklinde yazılabilir, her hangi bir işlem bir kontrol yapısı (döngü, koşul, komut bloğu vb.) ile değiştirilebilir, kural 2 ve 3, birçok kere tekrarlanabilir)
Yapısal Programlama Bölümleri ve OOP Bağlantısı
- Tüm programlar komut bloğu, koşul (if, if/else, switch) veya döngü (for, while, do/while) parçalarına bölünebilir
- OOP'de: Veri ve Fonksiyonlar Sınıf (Class) paketlerinin içine saklanır
- Class' lar mimari planlara benzer, tekrar tekrar kullanılabilirler.
- Class kullanılarak yeni nesneler oluşturulur ve planlarda değil, evlerde oturulur
Nesne Yönelimli Programlama (OOP) İpuçları
- Veri (attributes) ve Fonksiyonlar (behavior) Sınıf olarak adlandırılan paketler içinde korunurlar
- Veriler ve Fonksiyonlar birbirleri ile son derece sıkı ilişki içindedirler
Struct Yapısı
- Diğer data tiplerini birleştirerek yeni bir data tipi oluşturur
struct Time { int hour; int minute; int second; };
Struct Özellikleri
- Bir struct yapısındaki her üyenin adı farklı olmalıdır
- İki farklı struct yapısı aynı üyelere sahip olabilir
- Struct tanımı mutlaka ';' ile bitirilir
- Kendisini üye olarak alan bir struct yazılabilir ve genelde liste, stack vb. yapılar programlamada kullanılır
Struct Değişkenleri ve Pointer Erişimi
- Struct yeni bir değişken tipi oluşturur; bu tipte değişkenler kullanılarak başka değişken tanımlayabilirsiniz
- Normal üyelere erişirken
.
kullanılır; pointer üyelere erişirken->
operatörleri kullanılır Time timeObject, timeArray[ 10 ], *timePtr, &timeRef = timeObject;
Struct Örneği ve Üye Erişimi
timeObject
struct yapısınınhour
üyesine erişirkencout << timeObject.hour;
kullanılır- Pointer ile erişim:
timePtr = &timeObject; cout << timePtr->hour;
timePtr->hour
ile(*timePtr).hour
tamamen aynıdır
Sınıf Deklarasyonu
- Sınıf '{}' işaretleri arasında tanımlanır ve tanım ';' işareti ile sonlandırılmalıdır
Public:
veyaPrivate:
erişim kontrolü içindirsetTime
,printMilitary
veprintStandard
üye fonksiyonlardırTime
ise constructor' dür
Üye Erişim Kısıtlamaları
- Sınıf lar kendi veri ve fonksiyonlarına dışarıdan erişimi sınırlandırabilirler
Public:
sınıfa erişilen her yerden bu üyelere erişilebilirPrivate:
sadece sınıfın kendi üye fonksiyonları bu üyeye erişebilirProtected:
private' a benzerdir
Constructor
- Sınıf yapısının özel bir fonksiyonudur
- Sınıf' la aynı isimdedir, sınıf'tan bir nesne oluşturulurken çalıştırılır ve sınıf üyelerini hazırlar
- Geri dönüş değeri olmaz ama parametre alabilir
- Bir kez sınıf tanımlanınca, bir değişken tipi gibi kullanılır; dizi, pointer yada normal bir değişken tanımlanabilir
Constructor' de "::" Operatörü
::
operatörü class' ların fonksiyonlarına erişmek için kullanılır
Erişim Alanı (Scope)
- 'Class scope': Bir sınıfın veri ve fonksiyon üyeleri bu sınıf alanına aittir
- 'File scope': Üye olmayan fonksiyonlar bu alanda tanımlanır
- Erişim alanı (scope) içinde iken üye fonksiyonlara adları ile erişilebilir
- Erişim alanı dışında ise üye fonksiyonlara başka bir nesne yada pointer aracılığı ile ulaşılır
Erişim Alanı (Scope) - Devamı
- 'Function Scope': Bir üye fonksiyon içinde tanımlanan değişkenler sadece tanımlandıkları fonksiyon tarafından bilinirler, fonksiyon çağırıldığında oluşturulup, fonksiyondan çıkışta yok edilirler
- Üyelere erişim aynı struct yapısındaki gibidir. Normalde '.', Pointer' larla ise '->' operatörleri kullanılır: t.hour yada timePtr->hour gibi
Üye Değişkenler için İpuçları
public
üye değişkenler çok nadiren kullanılır- Genelde gizlenen değişkenlere
public
fonksiyonlar ile erişim tercih edilerek bilgi gizlenir; bu sayede nesne soyutlanır
Arayüz (Interface) ve Gerçekleme (Implementation) Bölümlerinin Ayrılması
- Sınıf yapısının tanımlanması bir başlık dosyasında (header file) yapılır
- Üye fonksiyonlar, program dosyasında tanımlanır
- Bu programların değiştirilmesini kolaylaştırır
Başlık Dosyası ve Fonksiyon Tanımlama Örneği
- Başlık dosyası (header file) ile fonksiyon tanımlarını ayrı ayrı tutmak kod okunabilirliğini artırır
- Başlık dosyasında
#ifndef
,#define
,#endif
yapıları kullanılarak aynı dosyanın tekrar tekrar yüklenmesi engellenir - Program dosyasında fonksiyonların içeriği yazılır ve bu fonksiyonlar başlık dosyasında tanımlanır
Erişim Kontrolü
Public
: Bu bölümdeki veri ve fonksiyonlara erişilebilirPrivate
: Bu bölümdekiler
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.