示例说明

假设有一个程序,需要接受文字信息并生成学生档案,信息的形式为:

"Name:ABC", "Age:20", "Wight:73","Address:Dalian", "Interest:football"

程序解析上述信息后,形成以下形式的数据:

C++11新特性(69)- sizeof...运算符_面向对象

根据本应用的要求,姓名,年龄和体重三项为必填项,地址和兴趣为可选项。

 

sizeof...运算符

参考前一篇文章的做法,代码可以这样实现:

C++11新特性(69)- sizeof...运算符_C_02

但是存在一个问题,就是参数数目可能会少于3个,也可能会多于5个。无论哪种情况都不可能生成正确的数据,于是希望在递归处理之前将这些情况排掉。而取得实际参数个数的方法就是sizeof...。参考下面的代码:

C++11新特性(69)- sizeof...运算符_数据_03

注意代码中高亮的部分。

 

作者一句话

很好理解的概念,但是想例子却花了不少时间。

 

觉得本文有帮助?请分享给更多人!

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

C++11新特性(69)- sizeof...运算符_面向对象_04