【问题标题】:C++ error, Undefined reference classC++ 错误,未定义的引用类
【发布时间】: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 进行编译

标签: c++ class


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多