mFrame
載入中...
搜尋中...
無符合項目
PArray.h
1
7#ifndef MFRAME_0E2A0367_7E28_4A65_A6DE_C5C912A9EE71
8#define MFRAME_0E2A0367_7E28_4A65_A6DE_C5C912A9EE71
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../lang/Memory.h"
18#include "./../util/Array.h"
19
20/* ***************************************************************************************
21 * Namespace
22 */
23namespace ufm::util {
24 class PArray;
25} // namespace ufm::util
26
27/* ***************************************************************************************
28 * Class/Interface/Struct/Enum
29 */
30
40 /* *************************************************************************************
41 * Variable
42 */
43 public:
44 int const vLength;
45 int const vElementSize;
46
47 /* *************************************************************************************
48 * Abstract Method
49 */
50
51 /* *************************************************************************************
52 * Construct Method
53 */
54 public:
61 PArray(ufm::lang::Memory memory, int elementSize) noexcept;
62
71 inline PArray(int length, int elementSize)
73 return;
74 }
75
83 PArray(PArray&& other) noexcept = default;
84
92 PArray(PArray& other) noexcept = default;
93
99 virtual ~PArray(void) override;
100
101 /* *************************************************************************************
102 * Operator Method
103 */
104 public:
111 template <typename E>
112 inline operator const Array<E>&(void) const {
113 const Array<>* src = this;
114 return *reinterpret_cast<const Array<E>*>(src);
115 }
116
123 template <typename E>
124 inline operator Array<E>&(void) {
125 Array<>* src = this;
126 return *reinterpret_cast<Array<E>*>(src);
127 }
128
129 /* *************************************************************************************
130 * Override Method - ufm::util::Array<void*>
131 */
132 public:
133 virtual int length(void) const override;
134
135 virtual int indexOf(void*& element) const override;
136
137 virtual void*& get(int index) const override;
138
139 virtual bool set(void* const& e, int index) override;
140
141 virtual int elementSize(void) const override;
142
143 /* *************************************************************************************
144 * Public Method
145 */
146
147 /* *************************************************************************************
148 * Protected Method
149 */
150
151 /* *************************************************************************************
152 * Protected Method
153 */
154
155 /* *************************************************************************************
156 * Private Method
157 */
158
159 /* *************************************************************************************
160 * Static Variable
161 */
162
163 /* *************************************************************************************
164 * Static Method
165 */
166};
167
168/* ***************************************************************************************
169 * End of file
170 */
171
172#endif /* MFRAME_0E2A0367_7E28_4A65_A6DE_C5C912A9EE71 */
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
Memory(const Data &data)
以資料物件建構 Memory 實例
指標陣列類別
Definition PArray.h:39
int const vLength
陣列長度
Definition PArray.h:44
PArray(PArray &other) noexcept=default
淺層複製構造函數
PArray(PArray &&other) noexcept=default
移動構造函數
virtual int length(void) const override
取得陣列長度
virtual int indexOf(void *&element) const override
搜尋元素位置
virtual bool set(void *const &e, int index) override
設置指定索引的元素值
virtual void *& get(int index) const override
取得指定索引的元素
PArray(int length, int elementSize)
構造指定長度和元素大小的指標陣列
Definition PArray.h:71
PArray(ufm::lang::Memory memory, int elementSize) noexcept
使用現有內存構造指標陣列
virtual int elementSize(void) const override
取得元素大小
virtual ~PArray(void) override
解構函數
int const vElementSize
每個元素的大小(位元組)
Definition PArray.h:45
Definition Iterable.h:28
[Interface] 通用陣列介面
Definition Array.h:40