所以我一直在玩C ++。我试图弄清楚是否可以在另一个结构的定义中定义一个结构。这是我的代码。
#include <iostream>
using namespace std;
int main(){
struct structure1{
int integer1;
struct structure2{
int integer2;
}struct2;
}struct1;
structure1 *s1 = &struct1;
s1->integer1 = 50;
cout<<"STRUCTURE ONE'S INTEGER: "<<s1->integer1<<endl;
cout<<"STRUCTURE ONE'S STRUCTURE2.integer2: "<<s1->struct2.integer2;
}
输出:
$ ./a.out
STRUCTURE ONE'S INTEGER: 50
STRUCTURE ONE'S STRUCTURE2.integer2: 0
从我在输出中看到的它似乎正在起作用。但我只是不明白为什么或如何运作。这是好习惯吗?这有什么应用吗?
谢谢!
答案 0 :(得分:0)
但我只是不明白为什么或如何运作。
为什么它不起作用?它是完全合法的C ++。
这是好的做法吗?
取决于它是如何使用的。
这有什么应用吗?
当然。例如,当您在structure2
内只需要structure1
而在其他任何地方。让它的范围尽可能小是很好的。