Penulisan Semula Fungsi dan Pengaturcaraan Templat: Mendedahkan Penggunaan Ajaib Pengembangan Kod dan Generalisasi Kod

王林
Lepaskan: 2024-05-05 11:00:01
asal
1030 orang telah melayarinya

Penulisan semula fungsi dan pengaturcaraan templat ialah teknik yang berkuasa dalam C++ untuk mencapai sambungan dan generalisasi kod. Penggantian fungsi membolehkan sambungan dengan mengatasi kaedah kelas asas dalam kelas terbitan pengaturcaraan templat membolehkan generalisasi dengan mencipta kod generik yang boleh digunakan dalam pelbagai jenis. Contoh praktikal menunjukkan penggunaan penulisan semula fungsi dan pengaturcaraan templat untuk mengira luas sesuatu bentuk, menunjukkan kegunaan kedua-dua teknik dalam memanjangkan dan menyamaratakan kod.

Penulisan Semula Fungsi dan Pengaturcaraan Templat: Mendedahkan Penggunaan Ajaib Pengembangan Kod dan Generalisasi Kod

Penulisan semula fungsi dan pengaturcaraan templat: Mendedahkan kuasa lanjutan kod dan generalisasi kod

Penulisan semula fungsi dan pengaturcaraan templat ialah teknik berkuasa dalam pengaturcaraan C++ yang membolehkan pembangun mencipta kod berskala dan serba boleh.

Function Overriding

Fungsi overriding membolehkan sambungan kod dengan membenarkan pelaksanaan alternatif kaedah kelas asas disediakan dalam kelas terbitan. Sintaksnya adalah seperti berikut:

class Derived : public Base {
public:
  // 重写基类方法
  override double calculate() {
    // 自定义实现
    ...
  }
};
Salin selepas log masuk

Template Programming

Template programming membolehkan penciptaan kod generik yang boleh digunakan untuk pelbagai jenis. Sintaksnya adalah seperti berikut:

template<typename T>
class MyClass {
  T data;
  ...
};
Salin selepas log masuk

Contoh praktikal

Pertimbangkan program untuk mengira kawasan pelbagai bentuk:

// 使用基类和函数重写
class Shape {
public:
  virtual double calculateArea() = 0;
};

class Square : public Shape { // 使用函数重写扩展基类
public:
  double side;
  Square(double side) : side(side) {}
  double calculateArea() override { return side * side; }
};

class Circle : public Shape { // 再次使用函数重写扩展基类
public:
  double radius;
  Circle(double radius) : radius(radius) {}
  double calculateArea() override { return 3.14 * radius * radius; }
};

int main() {
  Square s(5);
  Circle c(10);
  cout << "Square area: " << s.calculateArea() << endl;
  cout << "Circle area: " << c.calculateArea() << endl;
}
Salin selepas log masuk
// 使用模板编程
template<typename T>
class Shape {
  T side;
public:
  Shape(T side) : side(side) {}
  T calculateArea() { return side * side; } // 通用实现
};

// 使用模板实例化创建特定形状
class Square : public Shape<double> {};
class Circle : public Shape<double> {};

int main() {
  Square s(5);
  Circle c(10);
  cout << "Square area: " << s.calculateArea() << endl;
  cout << "Circle area: " << c.calculateArea() << endl;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Penulisan Semula Fungsi dan Pengaturcaraan Templat: Mendedahkan Penggunaan Ajaib Pengembangan Kod dan Generalisasi Kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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