none
请指教 关于class的定义错误 RRS feed

  • 问题

  • 本人刚学习编程, 在定义class的时候遇到如下错误。

    不知如何解决,请您多指教。

    错误提示是 name followed by '::' must be a class or namespace name.

    这段代码是我copy的一个例子,不知怎地还有错误。

    类似的错误在定义其他class时也有。
    • 已移动 Elegentin Xie 2012年6月12日 2:01 (发件人:Visual C++)
    2012年6月7日 10:28

全部回复

  • 你好,

    根据我的理解,应该是你的类名前的A2BehavioralModelUtil_EXPORT参数,导致编译器了无法识别该类名。我不知道你的A2BehavioralModelUtil_EXPORT是什么,我猜可能是某个宏或者某个第三方库,建议你把这个参数搞明白。如果没有此参数的话,编译器是可以识别你的类方法的。

    如果你想学习类、类继承的构建方法的话,建议你看看这个:http://blog.csdn.net/hopedengxiwang/article/details/6942099http://www.cplusplus.com/doc/tutorial/inheritance/

    有疑问的话,请回帖。

    此致

    2012年6月8日 7:22
  • 版主,非常感谢你的回复。

    例子上讲是为了输出class或者function的信号而定义的, 如下

    正如你理解的, 去除该参数后编译器可以识别myVehicleDef 类 但有会产生新的错误。

    我学习Cpp的主要目的是为了使用一款软件的SDK 功能。例子也是说明书上给出的,但是错误太多无法编译。

    思考了一段时间仍然没有头绪,希望你能继续指点。

    2012年6月8日 8:29
  • 你好,

    根据我的理解,你的代码中在类名前加A2BehavioralModelUtil_EXPORT是为了把整个类作为输出,因为该宏的作用是声明dll方法或类的输出类型,你在定义A2BehavioralModelUtil_EXPORT这个关键字时没有加入declspec(_dllexpot)。这里加上declspec(_dllexpot)可能会使得该宏得以识别类方法名,但是由于不清楚你的库的结构以及目的,这样做可能会更改或者影响其他方面的引用或者用法,所以可能还会引起别的地方错误。

    因此,鉴于你的库是第三方的,所以我建议去找第三方库的完整例程来编译,或者去第三方论坛提问。

    希望对你有帮助。

    此致

    2012年6月11日 7:05
  • 感谢版主回复!

    2012年6月12日 0:11