Lebihan fungsi C++ dan fungsi fungsi maya

WBOY
Lepaskan: 2024-04-15 22:36:02
asal
401 orang telah melayarinya

Jawapan: Lebihan fungsi dan fungsi fungsi maya dalam C++ membenarkan pembangun mencipta fungsi dengan nama yang sama tetapi senarai atau gelagat parameter yang berbeza. Penerangan terperinci: Lebihan fungsi: Cipta fungsi dengan nama yang sama tetapi senarai parameter yang berbeza untuk menggunakan fungsi dengan fungsi yang serupa dalam situasi yang berbeza. Fungsi maya fungsi: Fungsi yang mengatasi kelas asas dalam kelas terbitan, digunakan untuk polimorfisme, membenarkan kelas terbitan menyediakan pelaksanaan yang berbeza daripada kelas asas.

C++ 函数重载和函数虚函数

Function Overloading dan Function Functions Maya dalam C++

Function Overloading

Function Overloading membolehkan anda mencipta berbilang fungsi dengan nama yang sama tetapi dengan senarai parameter yang berbeza. Ini berguna jika anda perlu menggunakan fungsi dengan fungsi yang serupa dalam situasi yang berbeza.

Sintaks:

ret_type function_name(parameter_list_1);
ret_type function_name(parameter_list_2);
...
Salin selepas log masuk

Contoh:

void printInfo(int x) {
  cout << "int: " << x << endl;
}

void printInfo(double x) {
  cout << "double: " << x << endl;
}

int main() {
  int a = 10;
  double b = 3.14;
  printInfo(a);  // calls printInfo(int)
  printInfo(b);  // calls printInfo(double)
  return 0;
}
Salin selepas log masuk

Fungsi fungsi maya

Fungsi fungsi maya membolehkan anda mengatasi fungsi kelas asas dalam turunan Ini berguna untuk polimorfisme dan pengaturcaraan berorientasikan objek kerana ia membolehkan anda menyediakan kelas terbitan dengan pelaksanaan yang berbeza daripada kelas asas.

Sintaks:

Gunakan kata kunci maya semasa mengisytiharkan fungsi dalam kelas asas. virtual

virtual ret_type function_name(parameter_list) const = 0;

在派生类中重写函数时使用关键字 override

override ret_type function_name(parameter_list) const { /* implementation */ }

示例:

class Shape {
public:
  virtual double area() const = 0;  // pure virtual function
};

class Circle : public Shape {
public:
  double radius;
  Circle(double radius) : radius(radius) {}
  override double area() const { return 3.14 * radius * radius; }
};

class Square : public Shape {
public:
  double side;
  Square(double side) : side(side) {}
  override double area() const { return side * side; }
};

int main() {
  Shape* s1 = new Circle(5);
  Shape* s2 = new Square(10);
  cout << "Area of circle: " << s1->area() << endl;
  cout << "Area of square: " << s2->area() << endl;
  return 0;
}
Salin selepas log masuk

注意事项:

  • 函数重载只适用于不同的参数列表。不能只改变返回类型。
  • 函数虚函数只适用于虚函数,即在基类中声明为 virtual 的函数。
  • 纯虚函数(在基类中声明为 virtual= 0
  • virtual ret_type function_name(parameter_list) const = 0;
🎜Gunakan kata kunci override apabila mengatasi fungsi dalam kelas terbitan. . senarai. Anda tidak boleh menukar jenis pulangan sahaja. 🎜
  • Fungsi maya fungsi hanya digunakan pada fungsi maya, iaitu fungsi yang diisytiharkan sebagai maya dalam kelas asas. 🎜
  • Fungsi maya tulen (diisytiharkan sebagai maya dan = 0 dalam kelas asas) mesti ditindih dalam kelas terbitan, jika tidak, kelas terbitan akan menjadi kelas abstrak . 🎜🎜
  • Atas ialah kandungan terperinci Lebihan fungsi C++ dan fungsi fungsi maya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:php.cn
    Kenyataan Laman Web ini
    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
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan