在类中声明结构
Posted
技术标签:
【中文标题】在类中声明结构【英文标题】:Declaring a struct in a class 【发布时间】:2016-05-18 09:59:19 【问题描述】:我创建了一个名为Text
的类,它的一个成员是Pal_freq
的std::vector
,在class
中声明的struct
。
我收到了这些错误:
错误:“Pal_freq”没有命名类型 bool 标准 (const Pal_freq& p1, const Pal_freq& p2);
错误:“Pal_freq”没有命名类型 bool 标准 (const Pal_freq& p1, const Pal_freq& p2);
错误:“Pal_freq”未在此范围内声明 矢量consultar_taula_freq();
错误:模板参数 1 无效 矢量consultar_taula_freq();
代码如下:
class Text
public:
struct Pal_freq
int freq;
string pal;
;
vector <Pal_freq> taula;
;
【问题讨论】:
Works here。您忘记#include <string>
或#include <vector>
了吗?
您好 Pau,为了获得更好的帮助,您应该包含错误消息。 “不起作用”不是很能说明问题。
您的错误信息与您的代码不相关
您显然没有包括整个代码。我的猜测是,当您在 Text
之外使用它时,您没有限定名称 Text::Pal_freq
。
@Pau,我没有说你应该包含 whole 类,请再次阅读我的评论!阅读有关如何创建 minimal 和 complete 示例的链接。这不仅仅意味着在这里转储整段代码。阅读有关如何使用本网站的链接和指南,它将节省您的时间并节省我们的时间,因此您可以获得更好的答案(但在这种情况下,我已经在下面给了您答案......但请阅读如何使用这个网站正确!)
【参考方案1】:
错误消息不是来自您展示的一小段 ode(结构的定义),它们来自您没有向我们展示的其他代码片段(即在哪里你尝试使用嵌套结构)。
因为它是在Text
中声明的,所以当你在Text
的范围之外引用它时,你需要限定它的名称,所以你需要将它称为Text::Pal_freq
,例如
bool criteri (const Text::Pal_freq& p1, const Text::Pal_freq& p2);
请阅读网站上的“如何提问”指南,并确保包含所有必要的代码,以便我们为您提供帮助。
【讨论】:
谢谢! bool criteri 在 Text 中,我应该使用 Text:: 吗? "bool criteri is inside Text" 不,不是。不在您向我们展示的代码中。这就是为什么我们无法帮助您,除非您提出更好的问题。如果您不显示criteri
,您希望人们如何解释为什么您会收到criteri
的错误?!也许您需要在尝试使用它的成员函数之前移动Pal_freq
的声明。但是显示代码,或者我们只是在猜测,你的问题应该被关闭。以上是关于在类中声明结构的主要内容,如果未能解决你的问题,请参考以下文章