Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menggunakan fungsi rakan dalam templat kelas?

Bagaimana untuk menggunakan fungsi rakan dalam templat kelas?

WBOY
WBOYasal
2024-04-17 10:36:01512semak imbas

Gunakan fungsi rakan dalam templat kelas untuk membenarkan fungsi luaran mengakses ahli persendirian. Langkah: Isytihar fungsi rakan: Gunakan kata kunci "rakan" dalam templat kelas. Tentukan fungsi rakan: Gunakan parameter jenis templat kelas untuk menjadikannya terpakai kepada semua jenis. Gunakan fungsi rakan: Panggil fungsi rakan sama seperti memanggil fungsi ahli biasa.

Bagaimana untuk menggunakan fungsi rakan dalam templat kelas?

Menggunakan fungsi rakan dalam templat kelas

Menggunakan fungsi rakan dalam templat kelas membolehkan fungsi luaran mengakses ahli peribadi templat kelas. Begini cara mengisytiharkan dan menggunakan fungsi rakan dalam templat kelas:

#include <iostream>

template <typename T>
class MyClass {
private:
  T data;

public:
  // 声明友元函数
  friend void print(const MyClass<T>& object);

  // 成员函数
  void set_data(const T& value) { data = value; }
};

// 友元函数定义
template <typename T>
void print(const MyClass<T>& object) {
  std::cout << "Data: " << object.data << std::endl;
}

int main() {
  MyClass<int> obj;
  obj.set_data(10);
  print(obj);  // 调用友元函数

  MyClass<std::string> strObj;
  strObj.set_data("Hello!");
  print(strObj); // 调用友元函数

  return 0;
}

Output:

Data: 10
Data: Hello!

Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi rakan dalam templat kelas?. 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