Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从.h文件中的.cpp文件访问变量_C++_Variables_Header Files - Fatal编程技术网

C++ 如何从.h文件中的.cpp文件访问变量

C++ 如何从.h文件中的.cpp文件访问变量,c++,variables,header-files,C++,Variables,Header Files,考虑以下情况: File1.cpp: hFile1.h: 这显然不起作用,因为hFile1.h将抛出一个错误:“使用未声明的标识符'dir'”。在本例中,我希望能够访问并使用hFile1.h中定义的dir变量。这可能吗 注意:我已经尝试过使用extern了,这是基于关于这个主题的类似帖子,但它不起作用,即使我完全按照他们所做的做了。代码: File1.cpp: hFile1.h: 您需要在hFile1.h中使用关键字“extern”,如下所示。我测试过了,它成功了 extern double d

考虑以下情况:

File1.cpp:

hFile1.h:

这显然不起作用,因为hFile1.h将抛出一个错误:“使用未声明的标识符'dir'”。在本例中,我希望能够访问并使用hFile1.h中定义的dir变量。这可能吗

注意:我已经尝试过使用extern了,这是基于关于这个主题的类似帖子,但它不起作用,即使我完全按照他们所做的做了。代码:

File1.cpp:

hFile1.h:

您需要在
hFile1.h
中使用关键字“extern”,如下所示。我测试过了,它成功了

extern double dir;

void printdir () {
    cout << dir;
}
extern双目录;
void printdir(){
不能您需要在
hFile1.h
中使用关键字“extern”,如下所示。我测试过,它有效

extern double dir;

void printdir () {
    cout << dir;
}
extern双目录;
void printdir(){

不能
#包括“hFile1.h”#包括“File1.cpp”
@asmmo include
.cpp
文件通常是一个非常糟糕的主意。我不认为你可以包含.cpp文件。你可以吗?@HyperTextMarkupMan
#include
只是一个文件内容的愚蠢复制和粘贴,你可以包含任何文本文件。但这并不意味着你应该这样做。@HyperTextMarkupMan
我已经尝试过使用extern…然后它就不起作用了
发布该代码。您只需要在
hFile1.h
main.cpp
中声明一个
extern double dir;
包含“hFile1.h”#包含“File1.cpp”
@asmmo include
.cpp
文件通常是一个非常糟糕的主意。我不认为你可以包含.cpp文件。你可以吗?@HyperTextMarkupMan
#include
只是一个文件内容的愚蠢复制和粘贴,你可以包含任何文本文件。但这并不意味着你应该这样做。@HyperTextMarkupMan
我已经尝试过使用extern…然后它就不起作用了
发布那个代码。你只需要在
hFile1.h
main.cpp
中声明一个
extern-double-dir;
。我不明白的是在这个场景中extern类型在做什么。@HyperTextMarkupMan它是用来标记
dir
有外部链接的。有关详细信息。什么我不明白extern类型在这个场景中做了什么。@HyperTextMarkupMan标记
dir
具有外部链接。有关详细信息,请参阅。
#include "hFile1.h"
int main () {
printdir();
}
extern double dir = M_PI/2;
extern double dir;
void printdir () {
cout << dir;
}
#include "hFile1.h"
int main () {
printdir();
}
extern double dir;

void printdir () {
    cout << dir;
}