c ++默认参数使用其他参数

问题描述 投票:0回答:1

而不是重载构造函数,以便其中的一个接受一个额外的参数,是否有任何方法可以调整默认参数,以便我可以访问另一个参数的成员?

#include <iostream>
#include <vector>
template <typename T>
class ArrayList {
public:
    int size = 0;
    int capacity = 0;
    T* array;

    ArrayList(int capacity = 1) : capacity(capacity) {
        array = new T[capacity];
    }
    ArrayList(std::vector<T>& vec, int capacity = vec.size()) {
        size = (capacity = vec.size());
        array = new T[capacity];
        for (int i = 0; i < size; i++) array[i] = vec[i];
    }
};

这里我试图将容量的值设置为向量的大小,如果未指定。

c++
1个回答
0
投票

然后您不再需要此参数

int capacity = vec.size()

为什么不直接在构造函数的主体中初始化容量?

ArrayList(std::vector<T>& vec)
{
    capacity = vec.size()
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.