Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Alias ​​Jenis Vektor daripada Templat Matriks dalam C?

Bagaimanakah Saya Boleh Mencipta Alias ​​Jenis Vektor daripada Templat Matriks dalam C?

Susan Sarandon
Susan Sarandonasal
2024-12-30 12:59:11901semak imbas

How Can I Create a Vector Type Alias from a Matrix Template in C  ?

Mencipta Typedef untuk Vektor seperti Matriks Menggunakan Alias ​​Templat

Pertimbangkan templat kelas berikut:

template<size_t N, size_t M>
class Matrix {
    // ....
};

Matlamatnya adalah untuk menentukan typedef yang mencipta Vektor (vektor lajur) yang bersamaan dengan Matriks dengan saiz N dan 1. Pada mulanya, percubaan dibuat menggunakan typedef:

typedef Matrix<N,1> Vector<N>;

Walau bagaimanapun, ini mengakibatkan ralat penyusunan. Penyelesaian yang serupa tetapi tidak serupa telah dicapai menggunakan warisan kelas:

template <size_t N>
class Vector: public Matrix<N,1>
{ };

Untuk mencari penyelesaian yang lebih sesuai, kita beralih kepada pengisytiharan alias yang diperkenalkan dalam C 11:

template <size_t N>
using Vector = Matrix<N, 1>;

Ini membolehkan penciptaan jenis alias Vector yang bersamaan dengan Matriks.

Dalam C 03, anggaran serupa boleh dicapai menggunakan struct dengan typedef bersarang:

template <size_t N>
struct Vector
{
    typedef Matrix<N, 1> type;
};

Di sini, jenis Vector< N>::jenis bersamaan dengan Matriks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Alias ​​Jenis Vektor daripada Templat Matriks 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