【发布时间】:2021-07-03 02:06:58
【问题描述】:
我一直在关注如何使用头文件创建类的教程,即使我按照教程中的所有操作都遇到了问题。我有 Cat.h、Cat.cpp 和 main.cpp 文件。它们都在同一个文件夹中。
猫.h:
#ifndef CAT_H_
#define CAT_H_
class Cat
{
public:
void speak();
};
#endif
Cat.cpp:
#include <iostream>
#include "Cat.h"
using namespace std;
void Cat::speak()
{
cout << "Meeeow!" << endl;
}
main.cpp:
#include <iostream>
#include "Cat.h"
using namespace std;
int main()
{
Cat jim;
jim.speak();
return 0;
}
当我运行程序时出现错误:“未定义对 `Cat::speak()' 的引用”。当我将 #include "Cat.cpp" 添加到 main.cpp 行时,问题就解决了,但我不认为这是一种可行的方法,并且没有它,教程就完成了。
【问题讨论】:
-
你是如何编译你的代码的?
-
在不知道您使用什么构建工具链的情况下,唯一合适的答案是:stackoverflow.com/questions/12573816/…
-
您的描述听起来好像您没有编译和链接 Cat.cpp。
-
我在 VS Code 中运行代码,同时安装了 MinGW 编译器。我使用 Code Runner 扩展运行代码(我认为手动编译代码?)如何编译和链接 Cat.cpp?我是这些东西的新手。
-
您需要修改您的 tasks.json 以获取它来构建您的所有源代码。该文档解释了默认设置是仅构建活动文件以及如何进行更改以构建工作区文件夹中的所有 cpp 文件:https://code.visualstudio.com/docs/cpp/config-mingw#_modifying-tasksjson
标签: c++ class header undefined