Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: "Sugihara Yoshimi" Newsgroups: playstation.ny.program.labo Subject: GCC++の初期化ついて Date: 23 Apr 1997 14:35:41 GMT Organization: PlayStation Net Yarouze Lines: 56 Message-ID: <01bc4ff3$89f95f80$5410dbca@default> NNTP-Posting-Host: 202.219.16.84 X-Newsreader: Microsoft Internet News 4.70.1157 突然ですが GNU C++ について教えてください。 ここのところ Play Station 上でも C++ がはやっているようなので、私も C++ を使うことにしました。 会議室をみて"やまさん"の作られた go32 用のコンパイラを使わせていただいています。("やまさん"大変ありがとうございま す。) 現在このコンパイラを使用してオリジナルのクラスライブラリを作成中なのですが 、静的変数の初期化ができなくて、詰まっています。 たとえば、 #include class test { public: long b; long c; test(int i=0,int j=0){this->b=i;this->c=j;}; }; test g_b=test(10,100); void main(void) { printf("g_b.b=%ld¥n",g_b.b); printf("g_b.c=%ld¥n",g_b.c); } のコードを実行すると g_b.b=0 g_b.c=0 と表示されます。 このコードでは画面上に g_b.b=10 g_b.c=100 と出力されるのが正しいと思うのですが、何か考え方がおかしいのでしょうか? ここ1ヶ月ほどいろいろ調べたのですが、Microsoft Visual C++ Version 1.5 では正しく動きます。 また、上記のコードにtest::test()コンストラクタ内にprintf()を記述したところ 、この表示が行われないので、コンストラクタそのものが起動していないようです 。 ただし、コンストラクタのない構造体・クラスでは正しく初期化できています。 誰か助けてください。お願いします。