c++ - 使用指针运行时无法编译

标签 c++

当我将所有这些合并为一个文件时,我的代码可以编译并运行良好。但是,当我使用头文件并使用单独的文件时,出现此错误:

Undefined symbols for architecture x86_64:
  "someClass::newNode()", referenced from:
      _main in check.o
      someClass::insert(someClass::Node*, char const*, char const*) in entry.o
ld: sym

找不到架构x86_64的bol

我已经尝试了所有方法,但找不到问题所在。它们使用“-c”分别编译,但是链接目标文件给了我错误。另外,在包含头文件时,我会使用包含保护措施和所有建议的技巧。任何帮助,将不胜感激!
//.h file
class someClass{
    public:
    //other stuff
    struct Node
    {
    //...
    };

    Node *newNode();
};

//entry.C
Node someClass::newNode(){
    someClass::Node *bNode = new someClass::Node;
    //...
    return bNode;
}

//check.C
int main(){
    //...
    someClass obj;
    someClass.Node *root = obj.newNode();
return 0;
}

最佳答案

要在c++中获取嵌套类型,请使用“::”而不是“。”。

someClass::Node *root = obj.newNode();

关于c++ - 使用指针运行时无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914139/

相关文章:

c++ - 将临时派生对象传递给需要基础对象引用的方法/函数

c++ - 错误 LNK2005 : "void __cdecl operator delete(void *)" (? ?3@YAXPAX@Z) 已在 LIBCMTD.lib(delete_scalar.obj) 中定义

需要以 OutputIterator 作为参数的成员函数的 C++ 概念

c++ - OpenGL 中的纹理渲染非常奇怪

c++ - 如何将托管数组传递给函数?

c++ - 如果存在堆栈溢出的可能性,为什么还要使用堆栈

c++ - C++中的宏和常量有什么区别?

c++ - 我可以确定线程是否具有 QEventLoop 吗?

c++ - 'undefined'怎么可能是竞争条件?

c++ - 如何从 Lua 脚本调用 C++ 函数?