C++ &引用;标识符未定义";从头文件调用函数时

C++ &引用;标识符未定义";从头文件调用函数时,c++,C++,我所要做的就是创建一个单独的类来保存我的Hello World函数(这是一个类),但是我得到了一个“标识符未定义”的编译器错误。问题是什么 以下是我的主要函数(helloworld.cpp): #包括 使用名称空间std; int main(){ 打印我(); 系统(“暂停”); 返回0; } 下面是头类(helloworld.h): #包括 作废打印{ std::cout您没有在helloworld.cpp中包含helloworld.h。以下代码应该可以工作: #include <io

我所要做的就是创建一个单独的类来保存我的Hello World函数(这是一个类),但是我得到了一个“标识符未定义”的编译器错误。问题是什么

以下是我的主要函数(helloworld.cpp):

#包括
使用名称空间std;
int main(){
打印我();
系统(“暂停”);
返回0;
}
下面是头类(helloworld.h):

#包括
作废打印{

std::cout您没有在
helloworld.cpp
中包含
helloworld.h
。以下代码应该可以工作:

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

using namespace std;

int main() {
     print_me();
     system("pause");
     return 0;
}
#包括
#包括“helloworld.h”
使用名称空间std;
int main(){
打印我();
系统(“暂停”);
返回0;
}
要记住的一件事是,从编译器的角度来看,除非您指定,否则这两个文件之间没有连接。两个文件具有相同名称的事实对编译器没有任何意义

<强>旁注1 :考虑在头文件中使用包含守护程序。对于简单的项目,可能不一定是必要的,但是对于较大的项目,不使用它们会导致恼人的模糊编译错误。


旁注2:通常不鼓励在头文件中实现函数体。

您没有在
helloworld.cpp
中包含
helloworld.h
。以下代码应该有效:

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

using namespace std;

int main() {
     print_me();
     system("pause");
     return 0;
}
#包括
#包括“helloworld.h”
使用名称空间std;
int main(){
打印我();
系统(“暂停”);
返回0;
}
要记住的一件事是,从编译器的角度来看,除非您指定,否则这两个文件之间没有连接。两个文件具有相同名称的事实对编译器没有任何意义

<强>旁注1 :考虑在头文件中使用包含守护程序。对于简单的项目,可能不一定是必要的,但是对于较大的项目,不使用它们会导致恼人的模糊编译错误。


旁注2:通常不鼓励在头文件中实现函数体。

尝试在类文件中包含相同的名称空间…错误仍然存在,因此我认为这不是问题所在您是否将helloworld.h文件包含在helloworld.cpp中?首先,为什么称它为“类”?您的代码中没有类。其次,您在头文件中定义了一个函数。这通常是不正确的。为什么您决定将
print\u me
的定义放在头文件中?我正在跟随一个在线类,并尝试执行它所描述的操作。这包括将print\u me放在头文件中。尝试包括类文件中的名称空间相同…错误仍然存在,因此我认为这不是问题所在您是否将helloworld.h文件包含在helloworld.cpp中?首先,为什么称它为“类”?您的代码中没有类。其次,您在头文件中定义了一个函数。这通常是不正确的。您为什么决定将
print\u me
的定义放在头文件中?我正在跟随一个在线类,并尝试执行它所描述的操作。这包括将print\u me放在头文件中。感谢帮助p、 但是我现在得到一个“无法打开源文件”helloworld.h。我的头文件应该在源文件文件夹中还是在头文件文件夹中(当前所在的位置)?这是一个不同的问题,最好在不同的帖子中提问,因为这个问题可能有不同的原因。但是,您是否将这两个文件放在同一个目录中,并从该目录中调用编译器?尝试在include语句中使用头文件的完整路径,例如
#include”/path/to/helloworld.h“
。我不知道问题出在哪里,但是如果我自动完成“helloword.h”,即使实际的include语句是相同的,它也能工作。感谢所有的帮助!它现在符合要求了。感谢帮助,但我现在收到了一个“无法打开源文件”helloword.h。我的头文件应该在源文件文件夹还是头文件文件夹中(当前所在地)?这是一个不同的问题,最好在不同的帖子中提问,因为这个问题可能有不同的原因。但是,您是否将这两个文件放在同一个目录中,并从该目录中调用编译器?尝试在include语句中使用头文件的完整路径,例如
#include”/path/to/helloworld.h“
。我不知道问题出在哪里,但如果我自动完成“helloword.h”,即使实际的include语句是相同的,它也能工作。感谢所有帮助!它现在符合要求了。
#include <iostream>
#include "helloworld.h" 

using namespace std;

int main() {
     print_me();
     system("pause");
     return 0;
}