Yavuzlar
Ana sayfaTelegram
  • Yavuzlar
  • VulnLab
  • CodinLab
  • 📚EĞİTİM
    • PHP
      • XAMPP kurulumu
      • VS Code Kurulum
      • 1.0 PHP Nedir
      • 1.1 Dosya Oluşturma
      • 1.2 Syntax (Yazım Kuralları)
      • 1.3 PHP'de Echo ve Print
      • 1.4 PHP'deki yorumlar
      • 1.5 PHP Değişkenleri
      • 1.6 Operatörler (Operators)
      • 1.7 Veri Türünü Alma
      • 1.8 PHP'de String
      • 1.9 PHP'de Sabitler
      • 2.0 PHP'de If Else Elseif
      • 2.1 Switch Case
      • 2.2 PHP'de Döngüler
      • 2.3 PHP'de Diziler (Arrays)
      • 2.4 PHP'de Süper Global Değişkenleri
      • 2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
      • 2.6 Form işlemleri
    • C++
      • 1.0 Temeller
        • 1.1 Dosya Oluşturma
        • 1.2 Syntax (Yazım Kuralları)
        • 1.3 Yorum Satırları
        • 1.4 C++ Değişkenleri
          • 1.4.1 Değişken Türleri
        • 1.5 Operatörler (Operators)
        • 1.6 Namespace
        • 1.7 Kullanıcı Girdisi (User Input)
        • 1.8 C++ Stringleri (C++ Strings)
        • 1.9 Matematik (Math) Fonksiyonları
        • 1.10 Booleans
        • 1.11 If Else
        • 1.12 Switch
        • 1.13 While Döngüsü
          • 1.13.1 Do While Döngüsü
        • 1.14 For Döngüsü
        • 1.15 Break/Continue
        • 1.16 Diziler
        • 1.17 Structures
        • 1.18 Enums
        • 1.19 References
        • 1.20 Pointers
      • 2.0 Fonksiyonlar
      • 3.0 Sınıflar
        • 3.1 OOP
        • 3.2 Sınıflar ve Objeler
        • 3.3 Sınıf Methodları
        • 3.4 Yapıcılar (Constructors)
        • 3.5 Erişim Belirleyicileri (Access Specifiers)
        • 3.6 Kapsülleme (Encapsulation)
        • 3.7 Inheritance
        • 3.8 Polimorfizm (Polymorphism)
        • 3.9 Dosyalar (Files)
        • 3.10 İstisnalar (Exceptions)
        • 3.11 Tarih ve Zaman (Date and Time)
      • 4.0 Veri Yapıları (Data Structures)
        • 4.1 Veri Yapıları ve STL
        • 4.2 Vektörler (Vectors)
        • 4.3 Listeler (Lists)
        • 4.4 Yığınlar (Stacks)
        • 4.5 Kuyruklar (Queues)
        • 4.6 Deque (Çift Uçlu Kuyruk)
        • 4.7 Küme (Set)
        • 4.8 Maps
        • 4.9 Iterator
        • 4.10 Algoritmalar
  • 🛠️ARAÇLAR
    • Aircrack-ng
    • Airgeddon
    • Arjun
    • BeEF
    • Bettercap
    • Docker
    • Gelişmiş Wireshark Kullanımı (Advanced Wireshark Usage)
    • Google Dorks
    • Hping3
    • John the Ripper
    • Metasploit Framework
    • Netcat
    • Nmap
    • OSINT Framework
    • PEASS-ng
    • Sublist3r
    • XSS Scanner
    • Wireshark
    • ZAP
    • HYDRA
  • 🖥️İŞLETİM SİSTEMLERİ
    • Linux101
    • MBR
  • 🔑KRİPTOLOJİ
    • Dijital Sertifika ve İmzalar
    • Sezar Şifrelemesi
    • Steganografi
    • Veri Şifreleme (Data Encryption)
  • 🔏Network
    • Domain Name Server (DNS)
    • Firewall Nedir? Nasıl Çalışır ?
    • Ortadaki Adam Saldırısı (Man In The Middle Attack)
    • OSI Modeli
    • Sanal Özel Ağlar (VPN)
    • World Wide Web (WWW)
  • 🔐PRIVILEGED
    • Docker Escape
  • 📨Protokoller
    • ARP
    • DHCP
    • FTP
    • HTTP/HTTPS
    • SSH
    • TCP/IP
    • UDP
    • Wİ-Fİ Güvenlik Protokolleri (WEP/WPA/WPA2/WPA3)
  • 💻SİBER TEHDİT İSTİHBARATI
    • Gelişmiş Siber Tehdit İstihbaratı Nedir?
  • 🔒WEB GÜVENLİĞİ
    • 403 ByPass
    • API Güvenliği (API Security)
    • Broken Access Control
    • Bulut Güvenliği (Cloud Security)
    • Command Injection
    • Cross Origin Resource Sharing
    • Cross Site Request Forgery (CSRF)
    • Cyber Kill Chain
    • DDoS Saldırıları
    • File Upload Zafiyeti Nedir?
    • HTTP Request Smuggling
    • Insecure Direct Object Reference (IDOR)
    • Incident Response
    • Local File Inclusion (LFI)
    • NoSQL Injection
    • Pentest 101
    • Race Condition
    • Server Side Request Forgery (SSRF)
    • Server Side Template Injection (SSTI)
    • Spring4Shell
    • Two Factor Authentication Bypass
    • XML External Entity Attack (XEE)
  • 🤖YAPAY ZEKA
    • ChatGPT for Hacking
    • Siber Güvenlik ve Yapay Zeka
    • Yapay Zeka ile Sahte Fotoğraf Tespiti
  • 🌐YAZILIM
    • Düzenli İfadeler (Regular Expressions)
    • Elasticsearch Nedir?
    • Front-end Teknolojileri
    • Golang'da Arayüzler (Interfaces)
    • Go'da Concurrency ve Uygulamaları
    • Güvenli Kodlama (Secure Coding)
    • Java Overloading vs Overriding
    • JSON Web Token (JWT)
    • Material-UI
    • NextJS Nedir?
    • ReactJS Kancalar (Hooks)
    • ReactJS Nedir?
    • Redux Toolkit
    • SOLID Yazılım Geliştirme Prensipleri
    • SQL 101
    • UI / UX Nedir?
    • Veri Taşıma Nedir? (Database Migration)
    • Versiyon Kontrol Sistemleri ve GIT
  • 🔷DİĞER
    • Bug Bounty (Hata Ödülü) Nedir?
    • Popüler Yazılımların Kurulumları
      • Ubuntu Server 24.04 LTS Kurulumu
      • Ubuntu için Güncel Docker Engine Kurlumu
    • Güvenlik Operasyonları Merkezi Nedir?
    • Honeypot (Bal Küpü)
    • IoT Güvenliği Nedir?
    • ShellShock Exploit
    • Yük Dengeleyici (Load Balancer) Nedir?
Powered by GitBook
On this page

Was this helpful?

  1. EĞİTİM
  2. C++
  3. 3.0 Sınıflar

3.7 Inheritance

Kalıtım, nesne yönelimli programlamanın temel özelliklerinden biridir ve bir sınıfın (alt sınıf) başka bir sınıftan (üst sınıf) özellikleri ve davranışları miras almasını sağlar. Bu sayede, kod tekrarı azaltılır ve yazılım geliştirme süreci daha verimli hale gelir.

1. Basit Kalıtım (Single Inheritance)

Bir sınıfın yalnızca bir üst sınıftan özellikleri miras almasıdır.

Örnek

#include <iostream>
using namespace std;

class Hayvan {
public:
    void sesCikar() {
        cout << "Hayvan ses çıkarıyor!" << endl;
    }
};

class Kedi : public Hayvan {
public:
    void miyavla() {
        cout << "Kedi miyavlıyor!" << endl;
    }
};

int main() {
    Kedi kedi;
    kedi.sesCikar(); // Üst sınıftan miras alınan metot
    kedi.miyavla(); // Alt sınıfa ait metot
    return 0;
}

2. Çoklu Kalıtım (Multiple Inheritance)

Bir sınıfın birden fazla üst sınıftan miras almasıdır. C++ bu özelliği destekler.

Örnek

#include <iostream>
using namespace std;

class Uyanik {
public:
    void uyan() {
        cout << "Uyanık!" << endl;
    }
};

class Temiz {
public:
    void temizle() {
        cout << "Temiz!" << endl;
    }
};

class Ogrenci : public Uyanik, public Temiz {
public:
    void dersCalis() {
        cout << "Ders çalışıyor!" << endl;
    }
};

int main() {
    Ogrenci ogrenci;
    ogrenci.uyan(); // Uyanık sınıfından miras alınan metot
    ogrenci.temizle(); // Temiz sınıfından miras alınan metot
    ogrenci.dersCalis(); // Ogrenci sınıfına ait metot
    return 0;
}

3. Çok Aşamalı Kalıtım (Multilevel Inheritance)

Bir sınıfın, başka bir sınıftan miras alarak yeni bir alt sınıf oluşturmasıdır.

Örnek

#include <iostream>
using namespace std;

class Hayvan {
public:
    void sesCikar() {
        cout << "Hayvan ses çıkarıyor!" << endl;
    }
};

class Kedi : public Hayvan {
public:
    void miyavla() {
        cout << "Kedi miyavlıyor!" << endl;
    }
};

class SarmanKedi : public Kedi {
public:
    void sarmanMiyavla() {
        cout << "Sarman kedi özel bir miyav çıkarıyor!" << endl;
    }
};

int main() {
    SarmanKedi sarmanKedi;
    sarmanKedi.sesCikar(); // Üst sınıftan miras alınan metot
    sarmanKedi.miyavla(); // Kedi sınıfından miras alınan metot
    sarmanKedi.sarmanMiyavla(); // SarmanKedi sınıfına ait metot
    return 0;
}

Kalıtım Erişimi (Inheritance Access)

Kalıtımda, erişim belirleyicileri (public, protected, private) kullanılarak alt sınıfların üst sınıflara erişim şekli belirlenir:

  • Public Kalıtım: Üst sınıftaki public ve protected üyeler alt sınıfta aynı erişimle görünür. (Örnek: class Kedi : public Hayvan)

  • Protected Kalıtım: Üst sınıftaki public ve protected üyeler alt sınıfta protected olarak görünür. (Örnek: class Kedi : protected Hayvan)

  • Private Kalıtım: Üst sınıftaki public ve protected üyeler alt sınıfta private olarak görünür. (Örnek: class Kedi : private Hayvan)

Örnek

#include <iostream>
using namespace std;

class Hayvan {
public:
    void sesCikar() {
        cout << "Hayvan ses çıkarıyor!" << endl;
    }
protected:
    void koru() {
        cout << "Koru!" << endl;
    }
private:
    void gizli() {
        cout << "Bu bir gizli metot!" << endl;
    }
};

class Kedi : public Hayvan {
public:
    void sesCikarKedi() {
        sesCikar(); // Public erişim
        koru(); // Protected erişim
        // gizli(); // Hata! Private erişim
    }
};

int main() {
    Kedi kedi;
    kedi.sesCikarKedi(); // Hayvan sınıfından miras alınan metotlar
    return 0;
}

Sonuç

Kalıtım, C++ dilinde nesne yönelimli programlamanın önemli bir parçasıdır. Kodun yeniden kullanımını artırır, yazılım geliştirme sürecini hızlandırır ve daha iyi bir organizasyon sağlar. Kalıtım erişimi sayesinde, alt sınıfların üst sınıfların üyelerine erişimi kontrol edilebilir. C++'da kalıtımın etkili bir şekilde kullanılması, yazılım projelerinin yönetimini ve bakımını kolaylaştırır.

Previous3.6 Kapsülleme (Encapsulation)Next3.8 Polimorfizm (Polymorphism)

Last updated 5 months ago

Was this helpful?

📚