【发布时间】:2020-09-15 08:54:58
【问题描述】:
我正在尝试学习 C++ 和编程,因此我在 STL 中实现了一些数据结构。
至于我的向量版本,我有两个构造函数,其中一个允许您指定内存中的存储位置,如果您愿意的话。如果不是,我将内部数据的地址设置为 nullptr。
我想知道这将如何表现。使用第一个构造函数,我假设m_data 将设置为nullptr,但是在第二种情况下会发生什么? m_data是先设置为nullptr,然后在构造中覆盖?是否有理由在定义中将定义保留为 nullptr,或者我应该在两种情况下都使用初始化列表?
代码如下:
template <typename T, size_t S = 0>
class custom::vector {
private:
T* m_data = nullptr;
size_t m_size;
size_t m_capacity;
T* m_future_data = nullptr;
size_t m_future_cap;
public:
// Constructors
vector() : m_size(S), m_capacity(S) {}
vector(T* destination, const size_t& capacity) : m_size(S) {
m_data = destination;
m_capacity = capacity;
}
// .... rest of class
【问题讨论】:
标签: c++ data-structures constructor initializer-list