Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuat penunjuk tersuai dalam C++?

Bagaimana untuk membuat penunjuk tersuai dalam C++?

WBOY
WBOYasal
2024-06-04 17:23:02269semak imbas

Penunjuk tersuai dalam C++ ialah cara untuk meningkatkan kefungsian penunjuk standard. Mencipta penuding tersuai termasuk: 1. Mencipta jenis penuding yang diwarisi daripada std::unique_ptr 2. Melaksanakan fungsi yang diperlukan dalam penuding tersuai. Contohnya, tingkatkan keteguhan kod dengan mencipta penunjuk tersuai untuk mengesahkan bahawa penunjuk adalah batal.

Bagaimana untuk membuat penunjuk tersuai dalam C++?

Penciptaan dan penggunaan penunjuk tersuai dalam C++

Dalam C++, penunjuk ialah pembolehubah yang boleh menyimpan alamat pembolehubah lain. Walau bagaimanapun, kadangkala kami ingin menggunakan penunjuk dengan cara yang lebih fleksibel dan mantap, dan ini adalah apabila penunjuk tersuai berguna.

Buat penuding tersuai

Mencipta penuding tersuai melibatkan langkah-langkah berikut:

  1. Buat jenis penuding yang diwarisi daripada std::unique_ptr:
template<typename T>
class MyPtr: public std::unique_ptr<T> {
    // 添加自定义功能
};
  1. Laksanakan titik tersuai atau sahkan kefungsian tambahan yang diperlukan dalam keluaran pintar status penunjuk.

Kes praktikal: Sahkan penuding bukan nol

Contoh berikut mencipta penuding tersuai yang mengesahkan sama ada penuding itu batal dan membuang pengecualian untuk meningkatkan keteguhan kod:

// 创建一个检查非空的自定义指针
template<typename T>
class NonNullPtr: public std::unique_ptr<T> {
public:
    NonNullPtr(T* ptr) : std::unique_ptr<T>(ptr) {
        if (ptr == nullptr) {
            throw std::invalid_argument("NonNullPtr: Pointer cannot be null");
        }
    }
    
    // 其他方法和函数...
};

// 使用:
int main() {
    // 创建一个非空的指针
    NonNullPtr<int> ptr(new int(5));
    
    // 访问指针指向的值
    int value = *ptr;
    
    // 尝试创建空指针会导致异常
    try {
        NonNullPtr<int> null_ptr(nullptr);
    } catch (std::invalid_argument& e) {
        std::cout << "Caught invalid argument: " << e.what() << std::endl;
    }
    
    return 0;
}

Atas ialah kandungan terperinci Bagaimana untuk membuat penunjuk tersuai 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