C++ 错误,未定义的引用类

Posted

技术标签:

【中文标题】C++ 错误,未定义的引用类【英文标题】:C++ error, Undefined reference class 【发布时间】:2014-02-08 07:40:01 【问题描述】:

为什么代码块会给出此错误“未定义对 class::classfunction() 的引用” 当在一个单独的文件中创建一个类时会发生这种情况。所有这些文件都在同一个文件夹中

这是主 .cpp 文件

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

using namespace std;

main()

    Class2 classObject;
    cout<<"I'm class2"<<endl;


类头文件

#ifndef CLASS2_H
#define CLASS2_H


class Class2

    public:
        Class2();
        ~Class2();
    protected:
    private:
;

#endif // CLASS2_H

类cpp文件

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

using namespace std;

Class2::Class2()

    cout<<"Hello, I'm Constructor"<<endl;


Class2::~Class2()

    cout<<"Yo!! I'm Destructor"<<endl;

错误是“对 Class2::Class2() 的未定义引用”

【问题讨论】:

你从未定义过“class::classfunction()” 对不起,错误是“未定义对 Class2::Class2() 的引用” 可能尝试切换cpp类文件中include语句的位置? 尝试切换他们的订单。仍然给出同样的错误 这是一个链接器错误。换句话说,链接器不知道它也应该在 class.cpp 中查找。如果您使用的是 IDE,那么它可能不是目标的一部分。如果您使用的是命令行,则使用 g++ main.cpp class.cpp 进行编译 【参考方案1】:

您需要将main.oclass.o 链接到您的可执行文件中。确切的命令取决于您的编译器和操作系统。对于 g++,命令看起来像

g++ -o main main.cpp class.cpp

【讨论】:

抱歉,这种代码在哪里输入?我正在通过代码块直接编译。不是通过终端 @user3286581:我不是 CodeBlocks 专家,但您可能需要创建一个包含两个源文件的项目:wiki.codeblocks.org/index.php?title=Creating_a_new_project

以上是关于C++ 错误,未定义的引用类的主要内容,如果未能解决你的问题,请参考以下文章

自定义类未出现在情节提要中

C++ 错误,未定义的引用类

H2数据库用户定义的java函数类未找到

C++ 错误:未定义对“main”的引用

带有前向声明的循环包含和继承导致 C2504 基类未定义

我收到“未定义的引用”错误,我不明白为啥(C++ OO)