#include <iostream>
#include <vector>
class Person{
public:
//使用初始化列表方式
Person(int id, int age):m_id(id),m_age(age){}
private:
int m_id;
int m_age;
};
// std::initializer_list允许构造函数或其他函数像参数一样使用初始化列表
struct Person1{
public:
// 用在对象构造函数
Person1(std::initializer_list<int> list)
{
for (std::initializer_list<int>::iterator iter = list.begin(); iter != list.end(); iter++)
{
m_vectors.push_back(*iter);
}
}
// 用在普通函数形参
void show_list_value(std::initializer_list<int> list)
{
for (auto it = list.begin(); it != list.end(); ++it)
{
std::cout<<*it<<std::endl;
}
}
std::vector<int> m_vectors;
};
void test1()
{
// 传统构造函数
Person p1(10, 20); // 构造函数对对象进行初始化
Person p2(p1); // 使用拷贝构造函数对对象进行初始化
}
void test2()
{
Person1 per = {1, 2, 3, 4, 5};// 对象构造
for (auto iter = per.m_vectors.begin(); iter != per.m_vectors.end(); iter++)
{
std::cout<<*iter<<std::endl;
}
per.show_list_value({1, 2, 3, 4, 5, 6});
}
int main()
{
test2();
return 0;
}
C++新特性初始化列表
最新推荐文章于 2024-05-13 20:55:40 发布