Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么可以停留在“之间”;结构";及;{";除了结构名称之外? 一个关于C++中数据结构如何使用的明确例子[1]。这是链接页面上给出的例子之一: struct product { int weight; float price; } ; product apple; product banana, melon;_C++_Struct - Fatal编程技术网

什么可以停留在“之间”;结构";及;{";除了结构名称之外? 一个关于C++中数据结构如何使用的明确例子[1]。这是链接页面上给出的例子之一: struct product { int weight; float price; } ; product apple; product banana, melon;

什么可以停留在“之间”;结构";及;{";除了结构名称之外? 一个关于C++中数据结构如何使用的明确例子[1]。这是链接页面上给出的例子之一: struct product { int weight; float price; } ; product apple; product banana, melon;,c++,struct,C++,Struct,但是,我有一个不遵循此模板的代码,我无法理解。下面给出了我的代码: struct result : mppp::data::table < row<semantics::user, int>, row<semantics::exitdatum, spmm::date>, row<userid, int> > {}; 结构结果:mppp::data::table< 一行 一行 一行

但是,我有一个不遵循此模板的代码,我无法理解。下面给出了我的代码:

struct result : mppp::data::table <
    row<semantics::user,       int>,
    row<semantics::exitdatum, spmm::date>,
    row<userid,                int>
> {};
结构结果:mppp::data::table< 一行 一行 一行 > {}; 我不明白为什么没有结构名,我们有这么复杂的结构,以及应该如何理解它。此外,我不明白为什么结构的“体”是空的(在“{”和“}”之间没有任何内容)

谁能给我解释一下吗

已添加


谢谢你的回答。现在更清楚了。上面示例中的
表示继承。但是所有这些结构的含义是什么:
aaa

它继承了一个模板,但没有添加自己的任何字段


你必须阅读C++教程。

< P>它是继承的,就像在<代码>类< /C>中的情况一样。
因此,在您的示例中,
struct result
继承另一个类或结构
mppp::data::table
A
struct
相当于一个
class
(默认访问级别除外)。您也可以继承结构或类。
mppp::data::table><
一行
一行
行
只是一个专门的模板类。

该代码使用继承。您可以在其名称后指定
结构的基类
,用
字符分隔,并可能使用
公共
受保护
私有
限定符之一来指定类型继承的类型(
public
如果未指定,则为默认值(*):

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

template<typename T>
struct X { };

struct Y : X<A> { }; // Fine
模板
结构X{};
结构Y:X{};//很好


(*)还值得一提的是,虽然相同的限定符适用于
类型的继承,但在这种情况下,默认值被假定为
私有

正文是空的,因为所需的任何内容都已经被继承,并且开发人员可能需要一个数据类型,它是此类继承的组合。这是继承语法,更具体地说是私有继承。这里有三个功能:
result
继承自
mppp::data
命名空间中名为
table
的模板化类型。那么,哪一个继承、模板和命名空间让您感到不安?@andre-继承是公共的,因为该类型是为什么不读一些介绍C++的书来解释所有这些,而不是阅读代码并询问每一个比特?可能值得指出的是默认值是<代码>公共<代码> > <代码>结构> <代码>?@ JuangopaZa:对了。让我补充一下。显然我们正在处理<代码>结构> <代码>,但是我担心如果你不明确地说出来,人们可能会感到困惑,认为它也适用于
类。
template<typename T>
struct X { };

struct Y : X<A> { }; // Fine