11得票2回答
为什么我不能在非聚合结构体中使用指定初始化器?

C++有一个非常好的新特性: struct Point{ int x; int y; int z; }; Point p{.x=47, .y=1701, .z=0}; 但是如果我添加了一个构造函数,那么我就无法使用方便的指定初始化语法: struct Point{ Point(in...

10得票2回答
设计器初始化元素后,这些元素是否以严格递增的方式存在?

这里,我已经像这样初始化了数组:#include <stdio.h> int main() { int a[10] = {1, 2, 3, [7] = 4, 8, 9}; printf("a[7] = %d\na[8] = %d\na[9] = %d\n", ...

10得票2回答
C语言中的神秘结构定义

我遇到了以下迷宫定义代码: typedef struct mazeNode { int hasCheese; int tag; struct mazeNode *left; struct mazeNode *right; } maze_t; maze_t m...

10得票1回答
C++20中的CTAD和指定初始化器

我已经在这个问题中表达了关于CTAD与指定初始化器混淆的看法,但我对一个非常相似的代码片段还有另一个困惑 template <typename int_t=int, typename float_t=float> struct my_pair { int_t firs...

10得票2回答
在指定的初始化程序中使用早期成员

考虑以下代码: struct Foo{ std::string s1; std::string s2; }; int main(){ Foo f{.s1 = "s1", .s2 = f.s1 + "s2"}; std::cout << "s1='...

9得票3回答
在C99+中是否可以将指定初始化器和malloc结合使用?

有没有一种好的方法将C99指定初始化器与malloc的结果结合起来? 以下代码似乎存在不必要的重复: typedef struct { int a, b, c; } Type; Type *t = malloc(sizeof *t); *t = (Type) { .a = ...

9得票2回答
为什么指定初始化函数不能在其基类中调用次要初始化函数?

根据文档,在Objective-C中,一个类的指定初始化方法必须调用其基类的指定初始化方法。另一个规则是,辅助初始化方法必须调用其自身类的指定初始化方法。但如果遵循第二个规则,为什么指定初始化方法不能调用其基类中的辅助初始化方法呢?这个基类的辅助初始化方法最终会调用其自己级别的指定初始化方法,...

9得票4回答
覆盖超类的指定初始化方法

我正在阅读一本关于指南: “如果一个类声明了一个与其超类不同的指定初始化器,则必须重写超类的指定初始化器以调用新的指定初始化器” 我的理解是,如果我从超类中继承了一个子类,并且我的子类具有与其超类不同的指定初始化器,那么我在子类中必须重写超类的指定初始化器,并在其中调用子类的指定初始化器。...

7得票2回答
子聚合类型的指定初始化器是否需要花括号?

在下面的程序中,聚合结构体 B 有一个名为 a 的字段,它本身也是一个聚合体。C++20 指定初始化器是否可以在不使用花括号的情况下设置其值? struct A { int i; }; struct B { A a; }; int main() { [[maybe_unused]...

7得票1回答
为什么在函数参数中使用指定初始化的代码,在删除一个函数后从含糊不清变成无法编译?

考虑以下代码: struct A{ int x; int y; }; struct B{ int y; int x; }; void func (A){ } void func (B){ } int main() { func({.y=1,.x=1...