c++构造函数参数裂变形式
时间: 2023-07-19 19:30:19 浏览: 163
C++中,构造函数参数裂变形式指的是使用一个参数类型为std::initializer_list的构造函数,让用户可以通过初始化列表来初始化对象的数据成员。这样,用户就可以使用花括号{}来传递一个列表,构造函数会将列表中的值逐个传递给对象的数据成员进行初始化。
以下是一个使用参数裂变的例子:
```c++
#include <iostream>
#include <initializer_list>
using namespace std;
class MyClass {
public:
MyClass(initializer_list<int> list) {
for (auto it = list.begin(); it != list.end(); ++it) {
data.push_back(*it);
}
}
void print_data() {
for (auto it = data.begin(); it != data.end(); ++it) {
cout << *it << " ";
}
cout << endl;
}
private:
vector<int> data;
};
int main() {
MyClass obj1{1, 2, 3, 4, 5}; // 使用花括号传递初始化列表
obj1.print_data(); // 输出 1 2 3 4 5
return 0;
}
```
在上面的例子中,构造函数使用了参数类型为std::initializer_list<int>的参数,这使得用户可以使用花括号来传递一个初始化列表。在构造函数中,我们遍历列表中的元素,并将它们添加到对象的数据成员中。
阅读全文