在定义和构造函数中初始化变量-用于

问题描述

我试图学习C ++和编程,因此我正在STL中实现某些数据结构。

至于我的vector版本,我有两个构造函数,如果可以的话,其中一个可以让您指定内存中的存储位置。如果没有,我将内部数据的地址设置为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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)