この日記はGNSで生成しています。 |
_ そろそろDB作りますかね・・・。
_ むむ、クラスローカルな記憶クラスを持つ変数とか関数とかっていう使い方があったですか・・・生兵法は怪我の元^^;。
_
・・・だとすると、クラス内で初期化できてもよさそーなのに、そうでない理由はなんだろう・・・と思って調べてみる。・・・あーそーか、「int MyClass::data = 5;
」がミソなのね。これが実体で、クラスの宣言部はこれを指すためのひっかかりにすぎないわけだ。本当にnamespace的な効果なのね。
_ constについてもいろいろ調べてみる。
#include <stdio.h> class MyClass { public: static int data; static int func(); const int cdata = 1; int data2; int func2(); }; int MyClass::func2() { return (cdata); } int main() { int dat; MyClass c; dat = c.func2(); printf( "%d\n", dat ); }
・・・ふむ、gccだとこんなコードも許可らしい。Borland C++でダメなところをみると、独自拡張なのかな。でもgccのほうが直交性はあるな。
_ 昼飯はJCでスペシャル弁当。
_ 「定数だからメモリ領域が確保されないという事には必ずしもならない」という厳しいつっこみ。まぁそれはそうなんですけど・・・ああいう形の場合は(メモリブロックに対して使うconstや、関数の引数に対して使うconstとは別で)まさに「定数」の意味になるのでああいう文体をとりました。メモリブロックに対してのconstは、ちょうど去年の今頃やったネタを参照のこと。ROMに焼くためのコーディングとして考えると、非常にわかりやすくとらえられるはず。
メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]