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

标签 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;
}

//这是对象.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!”。

最佳答案

在你应该有的cpp文件中

void object::printObject() {

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

关于c++ - 无法从 main 引用 .cpp 和 .h 文件中的函数。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57320112/

相关文章:

c++ - 在函数中包装 C block 。初学者问题

c++ - 如何连接两个程序(c++、qt)

c++ - 所有 C++ 头文件都是一个类吗?

c++ - 类成员函数声明疑问

c - 什么是 C 中的常量指针数组?

c++ - CMake 可以找到一个 Boost 头文件,但找不到另一个

c++ - 执行属于其他进程的外部函数

android - instr() 函数 SQLITE for Android?

c++ - 预编译的 Clang 看不到 Visual Studio header

c++ - 一次包含已在 main.obj 中定义的 .h 函数