Category Archives

Home >CからC++へ

CからC++へ

スポンサーサイト
...
--------
文字列リテラルによる初期化
RiSKさんのブログのコメント欄でやたらと盛り上がってしまったのですが、char型またはwchar_t型の配列を文字列リテラルで初期化する場合、配列の要素数より(初期化子である)文字列リテラルの文字数の方が少ないとき、ナル文字以降の値はどうなるのか、という話題です。実際のコードで示すと、次のような場合です。char str[5] = "abc";C言語であれば、ナル文字以降は '\0' で初期化されることが、規格上はっきりと規定されていま......
2006-12-18 | Comment : 2  | Trackback : 0 
クラステンプレート
今月はバタバタしていてなかなか更新ができませんでした。決して更新が面倒になって放置しているわけではありませんので、今後ともよろしくお願いします。今回はクラステンプレートについてお話します。クラステンプレート自体は関数テンプレートの延長のようなものですが、話を簡単にするために、今回は単純な構造体を使って話を進めることにします。C言語には、整数の商と剰余を格納するための div_t 型という構造体があります。......
2006-08-27 | Comment : 0  | Trackback : 0 
関数テンプレートの特殊化
前回は、max関数を例に挙げて関数テンプレートの話をしましたが、今回は、そのmax関数を特殊化して、文字列に対するmax関数を作ってみることにします。const char*型のオブジェクトが引数として渡された場合、前回取り上げたmax関数では、単にポインタの値の大小関係を比較するだけで、文字列の比較を行うことはできませんでした。ご存知のように、文字列の比較にはstrcmp関数を使う必要があるからです。そこで、今回はmax関数テン......
2006-08-01 | Comment : 0  | Trackback : 0 
関数テンプレート
テンプレート・メタプログラミングの話題を並行して進めると宣言しておきながら放置気味でしたが、カテゴリ「CからC++へ」でテンプレートの話ができるタイミングをある程度うかがっていました。ようやく今回から、「CからC++へ」でもテンプレートの話題に入ります。テンプレートの具体的な話をする前に、引数として渡された2つの値を比較して、大きい方の値を返す max 関数について考えてみましょう。int max(int a, int b){ ......
2006-07-24 | Comment : 0  | Trackback : 0 
型識別
豊富なC++の機能のうち、型識別はあまり使われていないような気がします。実際のところ、あまり使い勝手がよいとはいえませんが、特定の状況、例えばオブジェクト・ファクトリやマルチ・メソッドといったことをやりたいときには、それなりに役に立ちます。オブジェクト・ファクトリやマルチ・メソッドについてはここでは詳しく書きません。検索エンジンなどで調べてみてください。型識別を使うための文法は簡単で、typeid というキ......
2006-07-23 | Comment : 0  | Trackback : 0 

C++と組み込み環境 | Page Top▲

Navigation
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。