C++11统一初始化形式,使用{}

来源:互联网 发布:乐视电视mac码在哪 编辑:程序博客网 时间:2024/04/28 22:07
//使用vs2013测试代码class A{public:A(int i, int y){m_a = i;m_b = y;}void show(){cout << m_a << endl;cout << m_b << endl;}private:int m_a;int m_b;};void show(A a){a.show();}vector<int> Func(){return{ 1, 2 };}int main(){//c++03的初始化对象的方法A a1 = A(1, 2);A a2(1, 2);A *a3 = new A(1, 2);//c++11新增的初始化方法A a4{ 1, 2 };A a5 = { 1, 2 };   //{1,2}构造成什么类型,是根据它即将要赋值变量的类型而定的,对比下面的vector<int> b4;A a6 = A{ 1, 2 };A *a7 = new A{ 1, 2 };show({ 1, 2 });   //成功//cout << typeid({1,2}).name() << endl;cout << typeid(A{ 1, 2 }).name() << endl; //class A//------------------------------------------------------------------int b1[5] = { 0 };int b2[] = { 1, 2, 3, 4, 5 };vector<int> b3{ 1, 2, 3, 4, 5 };vector<int> b4 = { 1, 2, 3, 4, 5 };vector<int> b5 = Func();//遍历整个数组for (int &i : b5){cout << i << endl;}}

0 0
原创粉丝点击