Hi-*_*gel 2 c++ constructor struct class
我的意思是:我有一堆不同的结构/类,所有这些都应该用已知的预先值初始化.除了预初始化之外,这些结构/类永远不会以其他方式使用,因此不需要构造函数 - 它只是浪费额外的内存,程序中的额外CPU周期以及源代码中的额外空间.
如果您可以访问C++ 11编译器,则可以将构造函数标记为constexpr在编译时运行它们.这样做的好处是,您可以在运行时构建对象.例如
struct Point2D {
constexpr Point2D(int x, int y) : x_{x}, y_{y} {}
int x_, y_;
};
Run Code Online (Sandbox Code Playgroud)
现在你可以使用Point2D的构造函数在编译时初始化它,而不是运行时:
Point2D p{3, 4}; // no runtime overhead.
Run Code Online (Sandbox Code Playgroud)
在有限的情况下,可以初始化结构和类.
struct splendor {
int i, j;
char *name;
};
splendor iforus = { 1, 2, "Extra!" };
Run Code Online (Sandbox Code Playgroud)
此外,如果您从不需要结构类型的名称:
struct {
int k;
float q;
} anon_e_mouse = { 1, 2.3 };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |