使用头文件

时间:2016-08-20 00:50:38

标签: c++

首先,我知道这不是“正确的”。但是,我喜欢测试一下,我遇到了这个问题,如果我在头文件中创建一个全局变量并在main.cpp文件中声明它是extern,我可以使用它(请注意,我没有包含该类这个例子的标题)。但是,如果我实际上尝试做同样的事情,唯一的区别是包括类头,我得到一个错误。

  

(错误:ld返回1退出状态)。

我想知道为什么会这样?

所要求的代码:

Main.cpp的:

#include <iostream>
#include "albino.h"
using namespace std;

extern int iVar;

int main()
{
    cout << iVar << endl;
}

albino.h:

#ifndef ALBINO_H
#define ALBINO_H

int iVar = 10;

class albino
{
    public:
        albino();
};

#endif // ALBINO_H

albino.cpp没有任何东西。

  

错误:||错误:ld返回1退出状态|

1 个答案:

答案 0 :(得分:2)

我认为你这样做是错误的。

您只能定义全局变量 ;但是你可以多次声明

这意味着int i = 0;应该只存在一次,所以_not不在标题中,而是在一个cpp文件中(对于编译器来说不重要的是哪一个,仅用于试图找到它的人;);并且extern int i;可以在标题中,以便在任何地方重复。 另请参阅How do I use extern to share variables between source files?