对象数组定义时初始化多个参数(花括号圆括号区别)

  •  初始化时显式给出构造函数及参数表
  • 初始化的数量不可超过数组大小
  • 定义数组时可不定义数组大小,由初始化列表决定

关于花括号和圆括号在初始化时的作用:花括号等价于调用构造函数;圆括号为逗号表达式,表达式的值给对应的数组元素。如下所示:

class Time
{
private:
	int hour, minute, second;
public:
	Time(int h=0,int m=0,int s=0)
	{
		hour = h; minute = m; second = s;
	}
	void display()
	{
		cout << hour << ':' << minute << ':' << second << endl;
	}
};

int main()
{
	Time t[10] = { Time(1,2,3),Time(4,5),6,7,8,9,10 };
	cout << "t" << endl;
	for (int i = 0; i < 10; i++)
	{
		t[i].display();
	}

	Time t2[10] = { {1,2,3},{4,5,},6,7,8,9,10 };//此处花括号内与对象数组t等价
	cout << "t2" << endl;
	for (int i = 0; i < 10; i++)
	{
		t2[i].display();
	}

	Time t3[10] = { (1,2,3),(4,5),6,7,8,9,10 };//此处圆括号内为逗号表达式
	cout << "t3" << endl;
	for (int i = 0; i < 10; i++)
	{
		t3[i].display();
	}
	return 0;
}

输出结果为:

t
1:2:3
4:5:0
6:0:0
7:0:0
8:0:0
9:0:0
10:0:0
0:0:0
0:0:0
0:0:0
t2
1:2:3
4:5:0
6:0:0
7:0:0
8:0:0
9:0:0
10:0:0
0:0:0
0:0:0
0:0:0
t3
3:0:0
5:0:0
6:0:0
7:0:0
8:0:0
9:0:0
10:0:0
0:0:0
0:0:0
0:0:0


版权声明:本文为m0_62556296原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。