假设我们有两个结构,bigguy和foryou。
我们可以这样声明:
struct bigguy
{
struct foryou
{
int survivors;
}cia, pavel;
};
或者我们可以这样声明:
struct foryou
{
int survivors;
};
struct bigguy
{
foryou cia;
foryou pavel;
};
每种声明的优点和缺点是什么?它取决于该计划的目的吗?一种方法比其他方法更好吗? (假设在假设程序中有一个实际的理由不仅仅将所有内容都声明为单一结构。)
答案 0 :(得分:0)
以下是几个结构的嵌套结构的一些优点:
private
部分中的嵌套结构。因此,其余的代码不需要处理它。bigguy
的每个派生类自然会看到foryou
,即使它们位于不同的名称空间或范围内。嵌套enum
也很有趣,因为你可以引用枚举常量而不用命名空间上下文作为前缀。以下是嵌套结构的几个结构的一些优点。
foryou
类之外使用bigguy
结构,则需要在其前面添加bigguy::
,这有时是一种沉重的语法。请注意,auto
对于避免此类声明很有意思。bigguy
是模板类,您将有更多可理解的编译器消息,并且您将避免使用typename
。实际上,如果bigguy
是模板类,并且foryou
不需要模板参数,则首选几个结构。更好的是,您可以从内部具有bigguy
的非模板类派生您的foryou
模板化类。