//使用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;
}
}
C++11统一初始化形式,使用{}
最新推荐文章于 2024-06-22 16:56:46 发布