Generic pointer là gì?

Noun C++
void pointer
Con trỏ chung

Con trỏ chung (generic pointer) còn được gọi là con trỏ void (void pointer), con trỏ chung (generic pointer) là một loại con trỏ (pointer) đặc biệt có thể được trỏ đến các đối tượng thuộc bất kỳ kiểu dữ liệu (data type) nào. Con trỏ chung (generic pointer) được khai báo giống như một con trỏ bình thường, sử dụng từ khóa void làm kiểu dữ liệu của con trỏ.


void* ptr; // ptr is a void pointer

Một con trỏ chung (generic pointer) có thể trỏ đến các đối tượng thuộc bất kỳ kiểu dữ liệu nào:


int nValue;
float fValue;

struct Something
{
    int n;
    float f;
};

Something sValue;

void* ptr;
ptr = &nValue; // valid
ptr = &fValue; // valid
ptr = &sValue; // valid

Tuy nhiên, vì con trỏ chung (generic pointer) không biết kiểu dữ liệu của đối tượng mà nó đang trỏ tới, nên việc dereferencing đến con trỏ void là không hợp lệ. Thay vào đó, con trỏ chung (generic pointer) trước tiên phải được ép kiểu (typecast) sang một loại con trỏ khác trước khi có thể thực hiện dereferencing.


int value{ 5 };
void* voidPtr{ &value };

// std::cout (voidPtr) }; // however, if we cast our void pointer to an int pointer...

std::cout 

Output:


5

Learning English Everyday