除了结构名称之外,"struct"和"{"之间可以保留什么?

Rom*_*man 2 c++ struct

[这里]给出了如何在C++中使用数据结构的明确示例.1这是链接页面上给出的示例之一:

struct product {
  int weight;
  float price;
} ;

product apple;
product banana, melon;
Run Code Online (Sandbox Code Playgroud)

但是,我有一个不遵循此模板的代码,我无法理解它.我的内容如下:

struct result : mppp::data::table <
    row<semantics::user,       int>,
    row<semantics::exitdatum, spmm::date>,
    row<userid,                int>
> {};
Run Code Online (Sandbox Code Playgroud)

我不明白为什么不是结构名称,我们有这么复杂的结构,应该如何理解.而且,我不明白为什么结构的"主体"是空的("{"和"}"之间没有任何内容).

有人可以解释一下吗?

添加

谢谢你的答案.现在更清楚了.的:在上面的例子中是指继承.但所有这些结构意味着什么:aaa<bbb>

And*_*owl 7

该代码使用继承.您可以指定的基类struct的名字后,以把它们分开:的性格和可能的话,使用的一个public,protectedprivate限定词指定继承的类型(public如果未指定为默认(*)):

struct A { }; // Fine

struct B : public A { }; // Also fine

struct C : B { }; // Fine again, `public` is assumed by default

struct D : A, B { }; // Also possible (multiple inheritance)

struct E { };

struct F : public E, private D { } // Qualifiers can differ

struct : A, F { } obj; // structs can be anonymous 
Run Code Online (Sandbox Code Playgroud)

在您的情况下,基类是模板的实例:

template<typename T>
struct X { };

struct Y : X<A> { }; // Fine
Run Code Online (Sandbox Code Playgroud)


(*)值得一提的是,虽然相同的限定符适用于class类型的继承,但默认情况下假设是private这种情况.