C++void意思
在C++中,void
是一個關鍵字,它表示「無類型」或「空類型」。它有以下幾個用途:
- 函式返回類型:當函式不返回任何值時,它的返回類型可以聲明為
void
。
void f(); // 函式f不返回任何值
- 函式參數:當函式不接受任何參數時,它的參數列表可以聲明為
void
。
void g(void); // 函式g不接受任何參數
- 函式參數的默認值:在C++11標準中引入,
void
可以用來表示函式參數有一個默認值,即使它實際上沒有。這通常用於模板函式,其中void
表示任何類型。
template<typename T>
void h(T t, void); // 模板函式h,第二個參數有一個默認值
- 函式重載:
void
可以用於函式重載,特別是當函式的返回類型和參數類型都相同時,可以通過添加void
參數來區分它們。
void f(void); // 一個不接受參數且不返回任何值的函式
void f(int); // 另一個不返回任何值但接受一個int參數的函式
- 函式指針:當聲明一個指向不返回任何值且不接受任何參數的函式的指針時,類型可以聲明為
void
。
void (*p)(); // 指向不返回任何值且不接受任何參數的函式的指針
- 函式對象:在C++標準庫中,
void
可以作為函式對象(functor)的參數類型,表示它可以套用於任何類型的參數。
struct Functor {
void operator()(void); // 函式對象可以套用於任何類型的參數
};
- 類型擦除:在C++模板元編程中,
void
可以用來進行類型擦除,即將一個模板參數的類型信息擦除,只保留其占位符。
template<typename T>
struct TypeEraser {
void* data;
size_t size;
TypeEraser(T value) {
data = &value;
size = sizeof(T);
}
};
總之,void
在C++中是一個非常有用的關鍵字,它允許我們在不知道或不需要具體類型信息的情況下進行編程。