无法从main引用.cpp和.h文件中的函数。 C ++

时间:2019-08-02 04:51:49

标签: c++ function header-files

我试图第一次将引用,函数和主要函数分离为.h和2 .cpp文件,并且无法获取我的object.h文件中引用的和我的object.cpp文件中定义的函数在我的main.cpp中工作。

我正在使用代码块创建一个项目,创建一个控制台应用程序,在该项目中创建一个类,包括在同一文件夹中创建的.h和.cpp文件。然后,将#include和名称空间复制到#include“ object.h”下的cpp文件中。然后,我定义一个简单的函数来引用.cpp复制中的字符串,然后将引用粘贴到.h中。然后,我回到main并为该函数创建一个对象。然后我用新创建的对象调用该函数。此时,我的代码将不再编译。

//这是main.cpp

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

using namespace std;

int main()
{
  object thing;

  thing.printObject();
  return 0;
}

//这是object.cpp

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

using namespace std;

  void printObject(){

  cout << "You rock!" << endl;

}

//这是object.h

#ifndef OBJECT_H
#define OBJECT_H

class object
{
public:
  void printObject();
};

#endif 

这是我在构建过程中得到的输出:

obj\Debug\main.o||In function `main':|
D:\c ++\Object test\main.cpp|11|undefined reference to 
`object::printObject()'|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) 
===|

我希望控制台会显示“ You rock!”。

1 个答案:

答案 0 :(得分:1)

您应该在cpp文件中

void object::printObject() {

否则,您定义一个全局函数,而不是对象的方法。