在c ++头中声明值

时间:2017-02-18 02:40:41

标签: c++ header declaration

好吧,我是Python的C ++新手,不熟悉在头文件中声明变量。我试图创建几个.cpp文件,其中从一些相同的常量值集计算一些值。我的代码类似于:

/Global_input.h/
extern int y = 1;
extern int x = 2;

/Properties_1.cpp/
//I wanna calculate z = x + y
include<Global_input.h>
int z;

/Properties_2.cpp/
//I wanna calculate g = x*y
include<Global_input.h>
int g;

我被困在这里,我搜索的方式是创建一个新类或另一个.cpp文件。对于这种简单的情况,我可以直接调用x,y吗?提前致谢

4 个答案:

答案 0 :(得分:1)

为此目的使用static const变量:

static const int x = 1;

此处的const关键字可确保您的代码在任何时候都不会更改x(您声明其值应该是常量)。我建议您阅读以下SO帖子,以了解static关键字的用途是什么:

Variable declarations in header files - static or not?

答案 1 :(得分:1)

除了创建Global_input.h之外,还要创建一个Global_input.cpp文件,如下所示 -

/Global_input.h/
extern int y;
extern int x;

/Global_input.cpp/
#include "Global_input.h"

int y = 1;
int x = 2;

extern只是声明变量没有定义它。你必须在其他地方定义它。

答案 2 :(得分:0)

你的my.h文件应具有以下格式:

//Put before anything else
#ifndef MY_H
#define MY_H

//code goes here

//at the end of your code
#endif

你的my.cpp文件应如下所示:

//include header file you wish to use
#include "my.h"

答案 3 :(得分:0)

你需要告诉编译器只读取一次标题,例如像这样:

/* Global_input.h */
#ifndef GLOBAL_INPUT_H
#define GLOBAL_INPUT_H
    static const int y = 1;
    static const int x = 2;
#endif

/* Properties_1.cpp */
//I wanna calculate z = x + y
#include<Global_input.h>
int z = x + y;

/* Properties_2.cpp */
//I wanna calculate g = x*y
#include<Global_input.h>
int g = x * y;