0

我有一个要导入到 main.cpp 的 A 类(有 ah 和 a.cpp 文件)。我创建了 A 类的对象并尝试访问类中的方法,但我得到了对“A::Reset(unsigned int*, unsigned int*)”的未定义引用。

我不确定我的代码有什么问题

//啊

#ifndef _A_H_
#define _A_H_

class A
{

    public:

        A();
        void Reset();
};
#endif

//a.cpp:

#include "A.h"

A::A()
{

    Reset();
}


void A::Reset()
{

}

//main.cpp

#include "A.h"
int main(int argc, const char * argv[])
{

    A *aObj = new A;
    aObj->Reset();
}

任何帮助,将不胜感激。

4

2 回答 2

3

更正您的 main.cpp 文件,如下所示:

#include "a.h" 

int main(int argc, const char * argv[])
{

    A *aObj = new A; 
    aObj->Reset();

/*
or
   A aObj;
   aObj.Reset()
*/
}
于 2013-04-28T07:19:15.303 回答
1

首先,您需要在构建可执行文件时编译A.cpp和链接两者。main.cpp例如:

g++ -o main A.cpp main.cpp

至于缺少的compare()函数,请确保它在以下位置声明A.h

class A {
   ...
   int compare(unsigned int*, unsigned int*);
}

并定义在A.cpp

int A::compare(unsigned int*, unsigned int*) {
   ...
}
于 2013-04-28T07:09:55.537 回答