我有一个类(MethodClass.h和MethodClass.cpp文件)和main.cpp
在主要方面,我先调用构造函数,然后再调用方法。
构造函数运行良好,但对于该方法,我得到了错误:“ Test / main.cpp:13:对`MethodClass :: testMethod()'的未定义引用”
我用这个测试项目简化了问题:
方法类
#ifndef METHODCLASS_H
#define METHODCLASS_H
#include <cstdlib>
#include <iostream>
class MethodClass {
public:
MethodClass();
MethodClass(const MethodClass& orig);
virtual ~MethodClass();
void testMethod();
private:
};
#endif /* METHODCLASS_H */
MethodClass.cpp:
#include "MethodClass.h"
using namespace std;
MethodClass::MethodClass() {
cout << "Constructor: MethodClass" << endl;
}
MethodClass::MethodClass(const MethodClass& orig) {}
MethodClass::~MethodClass() {}
void testMethod(){
cout << "testMethod" << endl;
}
main.cpp:
#include <cstdlib>
#include "MethodClass.h"
#include "MethodClass.h"
using namespace std;
int main(int argc, char** argv) {
MethodClass mClass = MethodClass();
cout << "hallo" << endl;
mClass.testMethod();
return 0;
}
如果我对此表示满意,则构造函数可以正常工作-结果:构造函数:MethodClass hallo
如果我也删除第一行://#include“ MethodClass.h”,它还是可以的,这很正常吗?或者您可以向我解释为什么这行得通吗?
顺便说一句:我正在将Netbeans 8.0.2与MinGW编译器一起使用
将您的testMethod的实现更改为以下内容:
void MethodClass::testMethod(){
cout << "testMethod" << endl;
}
您需要适当地定义.cpp文件中定义的所有函数的作用域。void testMethod()只是一个没有容器类的全局函数testMethod()。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句