【问题标题】:Error: not a class or struct name错误:不是类或结构名称
【发布时间】:2013-11-05 18:45:22
【问题描述】:

我正在学习如何将不同的项目引用/连接在一起。我已经成功(至少我认为我做到了)通过“属性”窗口将一个项目包含到一个新项目中(即:添加库,包括依赖项)但是当我创建一个从另一个类继承的类时它无法识别它并且它告诉我“错误:不是类或结构名称”。更奇怪的是,它可以识别#include "TestBaseClass.h" 及其所在类所在的位置。

 //This is located in another project
 public class MyTestClass
 {
     public void testMethod(){}
 }
 //

 #include <iostream>
 #include "TestClass.h"

 using namespace MainSpace
 {
     class MyMainClass : public MyTestClass{}
 }

【问题讨论】:

  • 请提供代码来演示您遇到的问题,以及您的工具给出的确切错误消息。
  • 从您提供的短代码中,您的 MyTestClass 定义末尾缺少一个分号。
  • 我只是写了一个例子
  • 您写的是 C++ 和 Java(或其他类似语言)的奇怪组合。请发布一些真正的C++。 C++ 没有“项目”。请准确地描述您的问题。

标签: c++ inheritance conflicting-libraries


【解决方案1】:

首先,删除public。在课堂上毫无意义。还要加分号,在第二个public之后加冒号。

class MyTestClass {
public:
    void testMethod() { }
};

接下来,删除 using 并再次添加分号。

namespace MainSpace {
    class MyMainClass : public MyTestClass { };
}

今天我们了解到 C++ 不是 C#。

【讨论】:

  • 是的,我解决了这个问题,但它仍然什么也没告诉我
【解决方案2】:

我怀疑此时尚未定义 MyTestClass。它可能出现在 TestClass.h 中,但我怀疑是您的包含保护导致了错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2013-11-03
    相关资源
    最近更新 更多