08/02/08 11:48:47 sAmmpMO4
>>498
> //* const.h
> class global{
> public:
> static char c[64];
> static std::string msg;
> };
>
> //* const.cpp
> char * global::c = 0;
> std::string global::msg = "";
こうではなくて、こちらが正しい。
//* const.h
class global{
public:
static char c[64];
static std::string msg;
};
extern char * global::c;
extern std::string global::msg;
//* const.cpp
char * global::c = 0;
std::string global::msg = "";
つまり、ヘッダファイルに記述するのは
変数や関数、クラスの宣言であって、定義ではない。
これはBorland C++でも問題が出たと思うぞ。
多分Borland C++でコンパイルした時は複数のcppファイルで
ヘッダファイルをインクルードしていなかったから問題が起こらなかったのだろう。