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

c++ default parameter uses other parameter

本文关键字:参数 其他 C++ 默认      更新时间:2023-10-16

与其重载构造函数以便其中一个接受额外的参数,有没有办法调整默认参数以便我可以访问另一个参数的成员?

#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];
}
};

在这里,如果未指定,我正在尝试将容量值设置为矢量的大小。

那么你不再需要这个参数

int capacity = vec.size()

为什么你只是不初始化构造函数主体中的容量?

ArrayList(std::vector<T>& vec)
{
capacity = vec.size()
...
}