【问题标题】:C++ expected `)' before ';' token expected primary-expression before ')' tokenC++ 预期 `)' 在 ';' 之前')' 令牌之前的令牌预期主表达式
【发布时间】:2012-10-30 21:55:02
【问题描述】:

您好,我正在实现一个基于底层数组的二叉树。

我的项目包含一组 c++ 文件和用于生成编译的 makefile。

我正在使用 DEV-C++ 4.9.9.2 提供的 g++。

在启动编译时,我收到以下两组错误。

AlberoBinariov.h:在成员函数 bool AlberoBinariov<T>::figlioSinistroVuoto(typename Alberoa<T, int>::posizioneNodo)': AlberoBinariov.h:198: error: expected)' 之前的 ';'令牌 AlberoBinariov.h:198: 错误: ')' 标记之前的预期主表达式 AlberoBinariov.h:198: 错误: 预期 `;'在')'标记之前

AlberoBinariov.h:在成员函数 bool AlberoBinariov<T>::figlioDestroVuoto(typename Alberoa<T, int>::posizioneNodo)': AlberoBinariov.h:204: error: expected)' 之前的 ';'令牌 AlberoBinariov.h:204: 错误: 预期 )' before ';' token AlberoBinariov.h:204: error: expected primary-expression before ')' token AlberoBinariov.h:204: error: expected;'在')'标记之前

下面提供了感兴趣的部分代码:

      template <class T>
      bool AlberoBinariov<T>::figlioSinistroVuoto(posizioneNodo p)
      {
          return (figlioSinistro(p)==(posizioneNodo)P_NULL); //line 198
      }

      template <class T>
      bool AlberoBinariov<T>::figlioDestroVuoto(posizioneNodo p)
      {
           return (figlioDestro(p)==((posizioneNodo)P_NULL)); //line 204
      }

为了您的方便,我在下面的链接中包含了完整的源代码。

https://filetea.me/t1sc3e60

你能告诉我吗?提前感谢您的宝贵时间。我期待收到您的来信。

亲切的问候, 杰拉德

PS:P_NULL 是一个在 Constants.h 文件中声明的 NULL 指针常量。

【问题讨论】:

  • 所有这些匈牙利真正长的名字都很难阅读 :-( 尝试只使用“foo”、“bar”和“src”等名称来制作一个有代表性的代码示例......
  • 我是这么想的。如果我为变量选择英文名称应该会更好。但是,由于该项目包含数千行代码和几个文件,因此我很难重命名所有文件中的所有名称。我认为如果您尝试自己编译代码,我们可以更轻松、更快地找到解决方案。只要问我你需要理解的代码部分是什么,我就会发布答案。抱歉,我知道这很痛苦 :)
  • 请同时更新您的 IDE/编译器/调试器:sourceforge.net/projects/orwelldevcpp/…

标签: c++ templates g++ dev-c++ typename


【解决方案1】:

您有 3 个单独的右括号,没有相应的左括号:

return (figlioDestro(p) == ((posizioneNodo)P_NULL)) /* -> */ )));

改成这样:

return (figlioDestro(p) == ( (posizioneNodo)P_NULL ));

【讨论】:

  • 好的,感谢您指出这一点。我在尝试解决问题时引入了那些额外的 )) 括号。我已经从问题和通过链接获得的源代码中删除了它们。但是我仍然遇到同样的错误......
  • @geraldCelente 您仍然收到错误消息?同一行上是否有相同的错误消息? posizioneNodo 是如何定义的?是typedef 吗?一类? ...?
  • @David posizione Nodo 在类声明中定义 typedef typename AlberoBinarioa::posizioneNodo posizioneNodo;
  • @geraldCelente 您遇到的错误与您在问题中显示的错误相同吗?
  • @geraldCelente P_NULL 是什么?是宏吗?如果是,那么您必须确保放入 P_NULL 的文本不会与任何内容冲突。
猜你喜欢
  • 2020-10-30
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多