まだまだですわ…

| | コメント(0) | トラックバック(0)

あるC++のプログラムをコンパイルしたら
「ローカル変数は使用されていません」
みたいな警告が出てたんですよ。「あーもう使わない変数は消せよ」と思いつつ変数の宣言を消してコンパイルし直すとこんどはエラーが発生。「あれ?消すの間違えたかなー」と見直したんですが、あってるようです。コードを見てみるとこんな感じ。

HogeClass* ptr;

ptr->Method();

「ええー、なんでこれで動くの?未初期化ポインタの参照なのに」とちょっとめまいを感じつつクラス\宣言を見ると

class HogeClass { public: static void Method(); };

となってました。staticだからインスタンスの状態に関係なく呼び出せるわけか、と理解はできましたけど、なんか気持ち悪い。というか今の今までこんな表記ができるとは思いもしませんでしたよ。
C++は奥深いです…。

ちなみにVC++2005だと上記のコードでローカル変数は使用されていないと判断されてましたが、Xcodeだと出ませんね。下のptr->Method();を消すともちろん出ますけれど。

トラックバック(0)

このブログ記事を参照しているブログ一覧: まだまだですわ…

このブログ記事に対するトラックバックURL: http://hogelab.net/mt4/mt-tb.cgi/1661

コメントする

このブログ記事について

このページは、nakが2008年1月19日 12:09に書いたブログ記事です。

ひとつ前のブログ記事は「ゆとり乙」です。

次のブログ記事は「どこから突っ込めばいいものやら」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

    
Powered by Movable Type 4.01a