我正在尝试创建一个复数类,并希望将虚构单位 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}}运营商
答案 0 :(得分:2)
在 complex.h 中声明extern const complex i
。
如果您未将i
声明为extern
,则必须在使用它的每个编译单元中定义它。链接两个这样的编译单元将产生重复的定义错误。
答案 1 :(得分:0)
您宣布complex::i
,但您正在尝试使用i
。将代码更改为
complex c = 2 * complex::i;
或创建一个全局常量i
(注意:这不是一个好主意;但你可以在一个namspace内完成)。