C++实现的命令行参数管理

2014-11-24 09:12:52 · 作者: · 浏览: 0

在用C++编写可运行程序时,经常需要输入除了可运行文件之外的其它的命令行参数,可以用传统的getopt函数来分析,本文基于面向对象,分析一种管理命令行参数方法 -- 来源于webrtc项目,在阅读过程中,大家分享一下。


一,传统命令行分析


包含头文件:


二,命令行参数管理


假设命令行的输入格式的规则如下:


2.1 参数的值封装---FlagValue


这个类对参数的值进行封装,如--prefix=/usr,作为一个命令行参数时,prefix为键,/usr为值。在参数中,在此定义值的类型为布尔、整型、浮点、字符串中的一种。


由于一个值在只能取四种的一种,所以此处用联合类型表示FlagValue。


这个联合类型对命令行中键值对中的值进行封装,可以表示四种类型。


2.2 命令行中键值的表示 -- Flag


这个类是表示一对键值的抽象,包含下列元素: