我有自己的基本版本std::array
這是它的外觀:
template<typename T, size_t N>
class Array {
public:
Array()=default;
T& operator[](size_t n) {return m_data[n];}
size_t Size() {return N;}
private:
T m_data[N];
};
我可以這樣初始化它:
Array<int, 3> arr;
arr[0] = 11;
arr[1] = 22;
arr[2] = 33;
但是,如果我想整體初始化它怎么辦,如下所示:
Array<int, 3> arr = { 1, 2, 3 };
我怎么能這樣做呢?
uj5u.com熱心網友回復:
為了使聚合初始化作業,您需要使該類成為聚合類。為此,您需要創建陣列成員public。根據標準版本,您可能還需要洗掉默認的默認建構式Array()=default;并讓它被隱式定義。根本不要宣告任何建構式。
然后該類將成為一個聚合類,然后初始化將按照執行聚合初始化的方式作業。
這也是如何std::array作業的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/455164.html
下一篇:為什么有指標未使用但設定變數警告
