Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Peraturan pewarisan untuk fungsi ahli C++

Peraturan pewarisan untuk fungsi ahli C++

WBOY
WBOYasal
2024-04-18 14:45:011195semak imbas

Peraturan warisan fungsi ahli C++: Warisan awam: Jika kelas terbitan mewarisi fungsi ahli kelas asas secara terbuka, maka fungsi ahli kelas terbitan juga awam. Warisan yang dilindungi: Jika kelas terbitan melindungi dan mewarisi fungsi ahli kelas asas, maka fungsi ahli kelas terbitan dilindungi. Warisan persendirian: Kelas terbitan secara persendirian mewarisi fungsi ahli kelas asas Fungsi ahli kelas terbitan adalah peribadi dan tidak boleh diakses secara langsung oleh kelas terbitan itu sendiri.

C++ 成员函数的继承规则

Peraturan warisan untuk fungsi ahli C++

Dalam pengaturcaraan berorientasikan objek C++, kelas boleh mewarisi ahli data dan fungsi ahli daripada kelas asas melalui pewarisan. Untuk pewarisan fungsi ahli, ikut peraturan berikut:

  • Warisan awam: Jika kelas terbitan mewarisi fungsi ahli kelas asas secara terbuka, maka fungsi ahli kelas terbitan juga awam.
  • Warisan dilindungi: Kelas terbitan melindungi fungsi ahli kelas asas yang diwarisi, kemudian fungsi ahli kelas terbitan dilindungi.
  • Warisan persendirian: Jika kelas terbitan mewarisi secara persendirian fungsi ahli kelas asas, maka fungsi ahli kelas terbitan adalah persendirian dan tidak boleh diakses secara langsung oleh kelas terbitan itu sendiri.

Contoh praktikal:

Pertimbangkan contoh berikut:

class Shape {
public:
    virtual double getArea();  // 抽象函数
};

class Rectangle : public Shape {
public:
    Rectangle(double length, double width);
    double getArea() override;  // 重写父类的 getArea 函数
private:
    double length;
    double width;
};

class Square : protected Shape {
public:
    Square(double side);
    double getArea() override;
private:
    double side;
};

class Circle : private Shape {
public:
    Circle(double radius);
    double getArea() override;
private:
    double radius;
};

Dalam contoh ini:

  • Kelas Rectangle secara terbuka mewarisi kelas >Shape code> Fungsi getArea juga terbuka dalam kelas Rectangle. Rectangle 类公有继承 类,因此 getArea 函数在 Rectangle 类中也是公有的。
  • Square 类保护继承 类,因此 getArea 函数在 Square 类中也是保护的。
  • Circle 类私有继承 类,因此 getArea 函数在 Circle
  • Kelas Square dilindungi mewarisi kelas , jadi fungsi getArea juga dilindungi dalam kelas Square .

Kelas Lingkaran secara peribadi mewarisi kelas , jadi fungsi getArea adalah peribadi dalam kelas Circle.

    Nota:
  • Fungsi abstrak mesti ditindih dalam kelas terbitan.
  • Fungsi ahli kelas terbitan boleh mengakses ahli data dilindungi dan peribadi kelas asas, tetapi hanya boleh memanggil fungsi ahli awam dan dilindungi kelas asas.
🎜Pembina dan pemusnah kelas terbitan tidak diwarisi daripada kelas asas. 🎜🎜

Atas ialah kandungan terperinci Peraturan pewarisan untuk fungsi ahli C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn