C++:我想在所有CPP文件之间使用这个配置类,如何初始化它?

Nul*_*uli 2 c++

class Config
{
    public:

        static int OUTPUT_TO_FILE;
        static int NEED_TO_TRAIN;
        static int NO_FILE_TRAIN;
        static int NEED_TO_TEST;
}
Run Code Online (Sandbox Code Playgroud)

上面是我的header.h文件(我遵循:http://weblogs.asp.net/whaggard/archive/2004/11/05/252685.aspx )

我希望能够做像Config.OUTPUT_TO_FILE = true或variable = Config.NO_FILE_TRAIN这样的事情;

来自任何包含config.h的文件

我想要做的就是清楚,只想在我的所有cpp文件中共享一些变量.

编辑:我在编译时遇到问题:

在我的make文件中,我添加了:

hPif : src/main.o src/fann_utils.o src/hashes.o src/config.o # added the config part
    g++ src/main.o src/fann_utils.o src/hashes.o src/config.o -lfann -L/usr/local/lib -o hPif

config.o : src/config.cpp src/config.h
    g++ -c src/config.cpp

.
.
.
main.o: src/main.cpp src/config.h src/main.h src/hashes.h
    g++ -c src/main.cpp
Run Code Online (Sandbox Code Playgroud)

config.cpp:

#include "config.h"

int OUTPUT_TO_FILE = false;
.
.
.
Run Code Online (Sandbox Code Playgroud)

config.h中:

class Config
{
    public:

        static int OUTPUT_TO_FILE;
.
.
.
Run Code Online (Sandbox Code Playgroud)

试图通过以下方式致电:

#include "config.h"
...

            Config::OUTPUT_TO_FILE = true;
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

Undefined Symbols:
  "Config::OUTPUT_TO_FILE", referenced from:
      _main in main.o
      _main in main.o
Run Code Online (Sandbox Code Playgroud)

Nas*_*zta 8

标题(Config.h):

#pragma once

class Config
{
public:
  static int OUTPUT_TO_FILE;
  static int NEED_TO_TRAIN;
  static int NO_FILE_TRAIN;
  static int NEED_TO_TEST;
};
Run Code Online (Sandbox Code Playgroud)

来源(Config.cpp):

#include "Config.h"

int Config::OUTPUT_TO_FILE = 0;
int Config::NEED_TO_TRAIN = 0;
int Config::NO_FILE_TRAIN = 0;
int Config::NEED_TO_TEST = 0;
Run Code Online (Sandbox Code Playgroud)

用法(any.cpp):

#include "Config.h"

...
int variable = Config::OUTPUT_TO_FILE;
...
Run Code Online (Sandbox Code Playgroud)