Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kemahiran aplikasi fungsi maya dan fungsi maya tulen dalam C++

Kemahiran aplikasi fungsi maya dan fungsi maya tulen dalam C++

WBOY
WBOYasal
2023-08-22 11:33:391166semak imbas

Kemahiran aplikasi fungsi maya dan fungsi maya tulen dalam C++

Fungsi maya dan fungsi maya tulen dalam C++ ialah alat yang biasa digunakan oleh ramai pengaturcara yang menggunakan pengaturcaraan berorientasikan objek. Di bawah premis menggunakannya dengan betul, fleksibiliti dan kebolehselenggaraan program boleh dipertingkatkan dengan banyak. Artikel ini akan membincangkan kemahiran aplikasi fungsi maya dan fungsi maya tulen, dan berkongsi beberapa pengalaman pembangunan praktikal.

1. Fungsi maya

1.

Fungsi maya ialah teknik yang digunakan untuk melaksanakan polimorfisme, yang membolehkan fungsi ahli kelas ditentukan secara dinamik semasa masa jalan. Apabila fungsi maya dipanggil menggunakan penunjuk atau rujukan kelas asas, atur cara menentukan fungsi yang hendak dipanggil berdasarkan jenis objek sebenar, sekali gus mencapai polimorfisme masa jalan.

2. Senario aplikasi fungsi maya

  • Penunjuk kelas asas atau titik rujukan kepada objek kelas terbitan dan perlu melaksanakan polimorfisme
  • Sesetengah fungsi dalam kelas asas perlu ditakrifkan semula dalam kelas terbitan.

3. Langkah berjaga-jaga untuk menggunakan fungsi maya

  • Fungsi maya boleh ditindih oleh kelas terbitan, tetapi tidak boleh terlebih beban oleh kelas terbitan
  • Jika fungsi maya tidak ditindih, pelaksanaan lalai dalam kelas asas dipanggil;
  • Fungsi Pembinaan tidak boleh bersifat maya.

2. Fungsi maya tulen

1.

Fungsi maya tulen ialah fungsi maya tanpa pelaksanaan yang ditentukan Bentuk definisinya ialah "nama fungsi jenis fungsi maya() = 0;", di mana 0 selepas tanda sama menunjukkan bahawa fungsi itu adalah fungsi maya tulen. Fungsi maya tulen mesti ditakrifkan semula dalam kelas terbitan, jika tidak ralat penyusunan akan terhasil.

2. Senario aplikasi fungsi maya tulen

  • Kelas asas mentakrifkan antara muka fungsi, tetapi tidak dapat menyediakan pelaksanaan lalai
  • Kelas asas berharap untuk memaksa kelas terbitan untuk melaksanakan fungsi tertentu untuk memenuhi keperluan tertentu.

3. Langkah berjaga-jaga untuk menggunakan fungsi maya tulen

  • Selagi fungsi maya tulen ditakrifkan dalam kelas, ia menjadi kelas abstrak dan tidak boleh mentakrifkan objek kelas ini;
  • Kelas terbitan mesti melaksanakan maya tulen fungsi dalam kelas asas, jika tidak, ia akan menyebabkan ralat penyusunan;
  • Jika kelas terbitan tidak melaksanakan fungsi maya tulen dalam kelas asas, kelas terbitan juga menjadi kelas abstrak.

3. Kemahiran aplikasi fungsi maya dan fungsi maya tulen

1. Gunakan fungsi maya untuk mencapai polimorfisme

Fungsi maya boleh melaksanakan polimorfisme dengan mudah, membolehkan objek berbeza menunjukkan tingkah laku yang berbeza pada masa jalan, meningkatkan fleksibiliti Program. Berikut ialah contoh:

class Shape {
public:
    virtual void draw() {
        // 基类默认实现
    }
};

class Circle : public Shape {
public:
    void draw() {
        // 具体实现
    }
};

class Square : public Shape {
public:
    void draw() {
        // 具体实现
    }
};

int main() {
    Shape* p = new Circle();
    p->draw();  // 调用圆形的实现

    p = new Square();
    p->draw();  // 调用正方形的实现

    return 0;
}

Dengan mentakrifkan fungsi draw Shape sebagai fungsi maya, kita boleh menggunakan penuding kelas asas untuk memanggil pelaksanaan kelas terbitan yang berbeza pada masa jalan, mencapai polimorfisme.

2. Gunakan fungsi maya tulen untuk mentakrifkan antara muka

Mentakrifkan fungsi maya tulen boleh mentakrifkan kelas asas sebagai kelas antara muka, memaksa kelas terbitan untuk melaksanakan antara muka tertentu. Berikut ialah contoh:

class Interface {
public:
    virtual void func1() = 0;
    virtual int func2() = 0;
};

class Implement : public Interface {
public:
    void func1() {
        // 具体实现
    }

    int func2() {
        // 具体实现
    }
};

int main() {
    Interface* p = new Implement();

    p->func1();
    cout << p->func2() << endl;

    return 0;
}

Dengan mentakrifkan fungsi dalam Antara Muka sebagai fungsi maya tulen, kita boleh memaksa kelas Implement untuk melaksanakan fungsi ini, dengan itu mentakrifkan Antara Muka sebagai kelas antara muka.

3. Elakkan memanggil fungsi maya dalam pembina dan pemusnah

Panggilan fungsi maya ditentukan secara dinamik pada masa jalan, jadi memanggil fungsi maya dalam pembina dan pemusnah boleh membawa kepada hasil yang tidak dijangka. Oleh itu, kita perlu mengelak daripada memanggil fungsi maya dalam pembina dan pemusnah.

4. Ringkasan

Artikel ini memperkenalkan konsep asas dan penggunaan fungsi maya dan fungsi maya tulen dalam C++, dan berkongsi beberapa kemahiran aplikasi. Semasa proses pembangunan program, kami boleh menggunakan fungsi maya dan fungsi maya tulen secara fleksibel mengikut keperluan khusus, dengan itu meningkatkan fleksibiliti dan kebolehselenggaraan program. Pada masa yang sama, penjagaan perlu diambil untuk mengelak daripada memanggil fungsi maya dalam pembina dan pemusnah untuk mengelakkan kemungkinan ralat.

Atas ialah kandungan terperinci Kemahiran aplikasi fungsi maya dan fungsi maya tulen dalam 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