这个对象数组是如何初始化每个对象的成员变量的呢?
How does this array of objects initialize each object's member variable?
#include <cstudio>
struct Food {
char recipe[128];
};
void print_food(Food* food_ptr) {
printf("Recipe: %s\n", food_ptr->recipe);
}
int main() {
Food menu[] = {"Burn it", "Drop it", "USe too much salt"};
print_food(menu);
}
menu
数组中的 Food 对象是如何初始化的?它似乎没有调用任何构造函数,甚至没有任何定义。
首先,你应该知道,如果构造函数没有被显式写入,那么它们就会被隐式写入。
正如超级已经提到的,你的食谱是 aggregate initialized。
#include <cstudio>
struct Food {
char recipe[128];
};
void print_food(Food* food_ptr) {
printf("Recipe: %s\n", food_ptr->recipe);
}
int main() {
Food menu[] = {"Burn it", "Drop it", "USe too much salt"};
print_food(menu);
}
menu
数组中的 Food 对象是如何初始化的?它似乎没有调用任何构造函数,甚至没有任何定义。
首先,你应该知道,如果构造函数没有被显式写入,那么它们就会被隐式写入。
正如超级已经提到的,你的食谱是 aggregate initialized。