对`test :: setTest(int)'的未定义引用

时间:2017-03-19 08:36:35

标签: c++

当我编译这段代码时,我有2个错误“对test :: setTest(int)的未定义引用”和“对test :: getTest()的未定义引用”。我不知道出了什么问题,我在arch linux中使用g ++编译器:

test.h

class test{
    int i;
    public :
    void setTest(int);
    int getTest();

  };

TEST.CPP

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

    void test :: setTest(int x){
          i = x;
}
    int test :: getTest(){
        return i;
}

mainTest.cpp

#include<iostream>
#include"test.h"
using namespace std;
int main(){
    test t;
    t.setTest(5);
    cout<< "the value of i is : "<<t.getTest();

}

1 个答案:

答案 0 :(得分:1)

您没有同时编译这两个文件,因此输出可执行文件没有对类的方法的引用,只是在您的终端上执行:

g++ mainTest.cpp test.cpp -o mainTest

然后将其运行为:

./mainTest