不是重载构造函数,以便使其中的一个接受一个额外的参数,有没有办法调整默认参数,以便我可以访问另一个参数的成员?
#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];
}
};
在这里,我尝试将不指定容量的值设置为vector的大小。
答案 0 :(得分:0)
那么您就不再需要此参数
int capacity = vec.size()
为什么不只是在构造函数的主体中初始化容量?
ArrayList(std::vector<T>& vec)
{
capacity = vec.size()
...
}