在vector声明中初始化对象
Initialize objects inside vector declaration
我正在写一个小的命令行解析库,你可以静态地描述选项:
std::vector<Args::Descriptor> description{
{UNKNOWN, 0,'h' , "help", Args::None, "print this help"}
};
where in my lib
struct Descriptor {
const uint option;
const int type;
const char shortopt;
const char* const longopt;
const CheckArg check_arg; // Function pointer
const char* help;
};
然后使用描述符初始化类:
Option(const Descriptor *descriptor)
{ … }
我可以移除我的描述符结构通过初始化Options 类内的vector吗?
std::vector<Args::Option> options{
{UNKNOWN, 0,'h' , "help", Args::None, "print this help"}
};
我的Option构造函数应该有什么签名?假设描述符类从代码中完全消失以简化它。
D这行不通。Option
的构造函数的参数是一个指向Descriptor
的指针。Descriptor
肯定来自某个地方。不能用类本身的实例初始化指向类的指针。
你能做的,是构造一个Descriptor
的向量,就像你现在做的那样。
然后,用指向Descriptor
向量中各个值的指针初始化Option
向量。
只要第一个向量保持不变,
相关文章:
- C++使用整数的压缩数组初始化对象
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 在 c++ 中初始化对象
- C++ 手动分配和初始化对象
- 使用运算符"="在C++中用值初始化对象
- 当我不需要数据库中的所有值时,如何部分初始化 c++ 对象?
- 如何初始化对象数组?
- 在C++中使用默认构造函数初始化对象的不同方法
- 使用默认构造函数初始化对象的不同方法
- 是否可以在编译时初始化对象的 C 样式函数指针,以便它调用对象的成员函数?
- 如何在线程中初始化对象,然后在其他地方使用它?
- 在没有默认构造函数时使用垃圾数据初始化对象
- 如果在 C++ 构造函数中以错误的顺序初始化对象数据,会发生什么类型的错误
- 初始化对象以在 C++08 中作为参数传递的首选语法是什么?
- 在 c++ 中复制对未初始化对象的引用
- 在成员变量在另一个文件中发生更改后,调用与初始化对象分开的函数
- 在不放置新运算符的情况下,在预分配的内存上使用虚函数初始化对象 - 这可能吗?如果没有,为什么
- 复制 CTOR 与赋值运算符以初始化对象(性能)
- 当您通过分配初始化C 对象时会发生什么
- 获取未初始化对象成员的地址是否定义良好?