2
假設我有以下類,基本上是一個普通的數組包裝對象的數組:複製動態分配與拷貝構造函數
template<class T>
SimpleArray {
T * array;
SimpleArray(): T(NULL) {}
SimpleArray(T * array_) {
// what goes here?
}
// TODO: copy constructor and copy assignment
~SimpleArray() {
delete[] array;
}
};
我如何從一個數組元素複製到另一個?如果它是一個簡單的類型,我可以使用像memcpy
這樣的東西,它會工作得很好。但是如果T
是一種需要深度複製的複雜類型呢?例如,如果T
有一個成員數組,那麼它將創建幾個指向相同資源的對象,這是一場災難。
基本上,我需要一些方法來創建一個數組的深層副本。有什麼建議麼?
我知道我可以使用標準庫中的某些東西,但是我不這樣做。 SimpleArray
旨在通過T*
形式輕鬆訪問我的對象的內部存儲。就我而言,沒有STL容器支持這種功能。
那麼,首先你需要知道'array_'的大小,然後才能做任何事情...... – Cornstalks 2013-05-01 14:32:24
http://stackoverflow.com/questions/10482998/create-a-deep-copy-of-an -array-c – nikhil 2013-05-01 14:32:27
@nikhil哦,看起來確實如此。謝謝!我想,我的搜索並不好。 – Saage 2013-05-01 14:34:22