2009-07-30から1日間の記事一覧

+=演算子のオーバーロード

C++

http://www.geocities.jp/ky_webid/cpp/language/017.html通常、+演算子だけをオーバーロードすることは稀のようです。 +をオーバーロードするなら+=もやっておきましょう。結局のところ、書き方の違いだけでやりたいことは同じですからね。 #include <iostream> class</iostream>…

16章 演算子のオーバーロード

C++

http://www.geocities.jp/ky_webid/cpp/language/017.html名前からして凄そうなのが出てきましたね。これは非常にややこしそうな臭いがぷんぷんします。 +や-といった演算子の振る舞いを変えてしまうんだそうです。なんだかスゴイですね。とりあえずオブジェ…

ハッシュ実装の話

C

次の内部ハッシュの実装(C言語のプログラムの一部)には誤りがある。誤っている部分を正しく修正せよ。ただし、Bはハッシュ表のサイズ、hashはハッシュ関数である。ハッシュ表の要素は正の整数とし、要素の個数はハッシュ表のサイズBより小さいとする。 本…

thisポインタ

C++

クラスのメンバ関数内でのみ使用できるthisポインタというものがあります。これはそのクラスのインスタンス自身を表すポインタだそうです。 #include <iostream> class CClass { public: int m_num; CClass(int); int getNum (); }; CClass::CClass (int num) { this-></iostream>…

正規表現を実装する 第一回「リテラル」

正規表現とはある文字列のパターン一致するかどうかをチェックするものです。正規表現 - Wikipedia今回これを自分で実装してみようと思います。当然、もうすでにCで作られた素晴らしい正規表現ライブラリがあるらしいのですが、勉強用として何も見ずにC++で…

const付の変数をconst無しの関数とかに渡したい場合

C C++

ってどうするのが一番なんだろうか。例えばこういうコード int func (const char* s1,const char* s2) { char* p; p = strstr(s1,s2); if ( p == NULL ) return 0; return 1; } main.cpp(5) : error C2440: '=' : 'const char *' から 'char *' に変換できま…