日々の記録。

プログラミングのメモや感じた事などを記録。

c++

C++講座 その6 列挙型

列挙型を利用すると、定数の集合に名前を付ける事ができ、新しい型のように扱う事ができる。 enum Sex { MALE, WOMAN }; enum ButtonType { NORMAL, IMAGE, TOGGLE }; 定数は明示しなければ0から連番で0,1,2,...と付けられる。 = 1のように値を明示すること…

C++講座 その5 サイズとバイトオーダー

サイズ 32bit CPUでWindows系の環境では各型は次のようなサイズになっている。 型名 サイズ(byte) char 1 short 2 int 4 long 4 float 4?(後日確認) double 8 「一般的な」としたのは、これらのサイズはCPUやOSの環境に依存するため。64bit環境では上…

C++講座 その4 整数型と浮動小数点

整数型 C言語と同様にintが整数型.よく利用するshortやlongという型はshort int, long intの省略形。 整数リテラル 3 -5 12352 0x53 といった値が整数リテラル。上記の値はintとして扱われる。 サイズを意識しなくて良い場合、整数値にはint型を利用した方が…

C++講座 その3 文字型

char型はcharacter型の略なので、キャラ型と読むのが正解だと思う。たまに50歳代のおっさんとかがチャーとか言っているけど、ちょっと悲しくなってしまう。 以上は余談。 char型は1文字を格納する型。一般的にサイズは1byte。主にASCIIを格納するために利…

C++講座 その2 論理型 bool型

論理型(bool, boolean型)はtrue(真)かfalse(偽)を表現する。 例えばC言語では、 if ( 3 ) { /* 必ずこっちの処理が行われる */ } else { /* */ } のように、0以外が真で0が偽となっていた。if文の結果が真の場合、if文ブロックの処理が行われ、偽の場合else…

C++講座 その1

最近、会社の若手に対してC++の講義を行っていて、今後も再利用できるようにここに残しておきたいと思う。 講義書は、個人所有の「プログラミング言語C++第3版」。アマゾンの評価では翻訳は悪いらしいけど、C++の原典なのでこれを利用する。 この講義の目的…

C++が破綻しているなぁと感じる一例

const intは定数として利用できるけど、容易にそれを破壊(?)できてしまうところとか。 int main() { const int x = 10; int* p = const_cast<int*>(&x); *p = 1; int y[x]; // x は 10となる。 (osx gccとwin vc2010で確認) cout << x << "," << *p << endl; //</int*>…

cQueryという C/C++言語の構文解析木をjQuery風にアクセスするライブラリがあったら

ツールを作るときに楽になるかもしれない? 既に存在するのかもしれない? 例 user.hにある構造体に対して「yaml形式の文字列を作成する関数」を作成してみる。 コードイメージ.(ruby) cQuery('user.h').structs.each do | struct_obj | puts struct_obj.gen…

yaml←→iniファイル自動生成、クラス自動生成

yamlを利用したINIファイル用ソースの自動コード生成の例 久しぶりにC++を使う必要性がありそうなため、 rails等にかぶれて作成中のもの。 その1 yaml→iniファイル, ini→yamlファイル code_gen yaml2ini < test.yml > test.ini code_gen ini2yaml < test.ini…