什么可以停留在“之间”;结构";及;{";除了结构名称之外? 一个关于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|
Astruct
相当于一个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