【问题标题】:C++ access global integer from class header fileC++ 从类头文件访问全局整数
【发布时间】:2014-05-08 10:32:29
【问题描述】:

我有一个声明一个类的头文件,我希望这个类能够访问一个已在主 cpp C++ 文件中声明的整数(即除类文件之外的另一个文件)。我一直在谷歌上搜索,没有发现任何相关的东西。我该怎么做?

【问题讨论】:

  • 将头文件中的整数声明为extern

标签: c++ class variables integer header-files


【解决方案1】:

要在源文件之间共享全局变量,请使用 extern 关键字。

main.cpp

#include "foo.h"

int global_var=0;

int main()
{
    foo();
    return 0;
}

foo.h

#ifndef FOO_H
#define FOO_H

extern int global_var;

void foo();

#endif

foo.cpp

#include "foo.h"

int foo()
{
    global_var=1;
}

【讨论】:

    【解决方案2】:

    将 main.cpp 中的整数移动到一个函数中,使其在那里成为静态,让函数返回对它的引用并将函数放入它自己的头文件中,该头文件是类头文件(或实现文件,如果合适的话) ) 包括。

    整数.h:

    #ifndef INTEGER_H // use some better, longer name here
    #define INTEGER_H
    
    int &Integer();
    
    #endif
    

    整数.cpp:

    #include "integer.h"
    
    int &Integer()
    {
      static int i = 0;
      return i;
    }
    

    像这样访问整数:

    int x = Integer(); // copy
    
    Integer() = 123; // assign
    

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 1970-01-01
      • 2011-01-29
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 2017-03-30
      • 2013-04-22
      相关资源
      最近更新 更多