如何创建类的全局常量 - C ++

时间:2013-03-21 17:26:53

标签: c++ global-variables const constants

我正在尝试创建一个复数类,并希望将虚构单位 i 创建为常量。我希望能够在包含类时在任何代码中使用它。例如:

#include "complex.h"
complex c = 2*i;

我尝试以这种方式定义:static const complex i位于complex public:下的const complex complex::i = complex(0,1)=中。*。但是当我在main.cpp的顶部编写代码时,我得到了未声明的变量错误。

我该怎么做?

注意:我已定义{{1}}和{{1}}运营商

2 个答案:

答案 0 :(得分:2)

complex.h 中声明extern const complex i

如果您未将i声明为extern,则必须在使用它的每个编译单元中定义它。链接两个这样的编译单元将产生重复的定义错误。

答案 1 :(得分:0)

您宣布complex::i,但您正在尝试使用i。将代码更改为

complex c = 2 * complex::i;

或创建一个全局常量i(注意:这不是一个好主意;但你可以在一个namspace内完成)。