【问题标题】:Declaring a struct in a class在类中声明结构
【发布时间】:2016-05-18 09:59:19
【问题描述】:

我创建了一个名为Text 的类,它的一个成员是Pal_freqstd::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 &lt;string&gt;#include &lt;vector&gt;了吗?
  • 您好 Pau,为了获得更好的帮助,您应该包含错误消息。 “不起作用”不是很能说明问题。
  • 您的错误信息与您的代码不相关
  • 您显然没有包括整个代码。我的猜测是,当您在 Text 之外使用它时,您没有限定名称 Text::Pal_freq
  • @Pau,我没有说你应该包含 whole 类,请再次阅读我的评论!阅读有关如何创建 minimalcomplete 示例的链接。这不仅仅意味着在这里转储整段代码。阅读有关如何使用本网站的链接和指南,它将节省您的时间并节省我们的时间,因此您可以获得更好的答案(但在这种情况下,我已经在下面给了您答案......但请阅读如何使用这个网站正确!)

标签: c++ class struct


【解决方案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 的声明。但是显示代码,或者我们只是在猜测,你的问题应该被关闭。
猜你喜欢
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-02
  • 2011-08-01
  • 1970-01-01
  • 2017-04-05
相关资源
最近更新 更多