無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

C++

2項演算子のオーバーロード

C++

C++では"+"や"-"といった演算子のオーバーロードが可能です。これを使うと以下のようなオブジェクト同士の足し算や引き算の動作を規定することができます。 Kitten *mii = new Kitten(); Kitten *tora = new Kitten(); *mii + tora; // オブジェクト同士を足…

動的オブジェクト

C++

オブジェクトも動的変数にすることがでます。 動的変数なのでnew演算子を使用します。 「new (引数..)」で、クラスのインスタンスが動的変数として作成され、そのポインタが返されます。 このときクラスのコンストラクタが実行されます。 不要になった変数は…

動的変数(new, delete)

C++

new演算子で動的変数を生成できます。動的変数を使うと、プログラムで必要になった時に動的にメモリを確保することができます。(通常はスタック領域に確保されるメモリを、ヒープ領域に確保すると解釈。) 「new ;」でメモリを確保し、そのポインタを返す。 …

抽象クラス

C++

実装を持たない仮想関数(純粋仮想関数と呼ばれる)を持つクラスが、抽象クラスになります。 純粋仮想関数は派生クラスで必ず実装しなければならない関数です。(Javaのabstract関数と同じ) 仮想関数のプロトタイプ宣言で「=0;」をつけると、純粋仮想関数になり…

多態性

C++

多態性(ポリモーフィズム)について。C++では次のような手順になります。 親クラスのポインタに派生クラスのインスタンスのポインタを代入。 Javaと同じですね。 親クラスのメソッドを実行→派生クラスでオーバーライドしたメソッドが実行される。 このとき、…

継承 その2

C++

継承のつづき。メソッドとコンストラクタのオーバーライドについて。 メソッドのオーバーライド 普通にできます。特に書くことなし。オーバーライドした親クラスのメソッドを呼び出すには「::」をつけます。Javaの「super.」のようもの。 #include <iostream> // 親ク</iostream>…

継承

C++

今日はクラスの継承です。継承の宣言から、継承したメソッド・フィールドのアクセス制御まで。 継承の宣言 以下の形式で書きます。 class <派生クラス名> : [<継承修飾子>] <親クラス名> { ... }; 簡単なサンプル。 #include <iostream> // 親クラス class Animal { pr</iostream>…

クラス

C++

クラスを定義してみます。 クラス 「class { .. };」の形式で書きます。 末尾に";"が必要なので注意。 コンストラクタ クラス名と同じ名前のpublic関数がコンストラクタになります。 Javaと同じく戻り値は持ちません。 オーバーロード可能です。 デストラク…

文字列

C++

C++の文字列はcharの配列です。 「char str[] = "hoge";」で簡単に初期化可能です。 文字列を引数として渡す場合、ポインタを指定して参照渡しとします。(配列なので当たり前といえば当たり前。) 「std::cout このため文字列長+1の配列として、最後に"\0"を…

配列とポインタ

C++

配列の名前は、配列の先頭要素のアドレスを指します。これをポインタ変数に代入し、インクリメントしていくことで、配列の列挙ができます。 #include <iostream> int main() { int array[] = { 100, 200, 300 }; // ポインタ変数の宣言 int *pointer; // ポインタ変数</iostream>…

ポインタ

C++

ポインタは変数の「アドレス」を記録する変数です。 ポインタ変数には、「メモリ上での変数の位置(場所)」が格納されます。 ポインタ参照演算子で、ポインタから「それが指し示す変数の値」を取得できます。 これを利用して、変数に別名をつけることができま…

配列

C++

今日は配列です。 宣言 次の構文で宣言します。{}で初期値を指定することもできます。この場合長さの指定は不要です。 <型> <変数名>[<長さ>]; <型> <変数名>[] = { <初期値>, <初期値> ... };Javaと似た感じですが、「int[] hoge」のように書くことはできま…

static変数

C++

関数内のローカル変数の宣言時に「static」を付加すると、static変数になります。 static変数は初回の関数実行時に一度だけ初期化されます。 値は関数呼出し後も保持されます。 「関数内グローバル変数」といった感じ。以下はサンプルです。 #include <iostream> int g</iostream>…

関数/関数のプロトタイプ宣言

C++

関数を定義してみます。 形式 基本の形式は次のとおり。Javaと似た感じです。 <戻り値の型> <関数名>( <引数の型> <仮引数>, <引数の型> <仮引数> ... ) { 処理 ... } サンプル #include <iostream> // 関数定義 int add( int i ){ return i+1; } int main() { int i =</iostream>…

インクリメント

C++

当然C++では可能ですが、JavaScriptなどでも可能かどうかまとめておきます。(すぐに忘れるので。) 言語 インクリメント(i++) 複合代入演算子(i+=1) 演算子オーバーライド C++ ○可能 ○可能 ○可能 Java ○可能 ○可能 ×不可 JavaScript ○可能 ○可能 ×不可 Ruby ×…

Hello C++ World!

C++

ここでC++ですよ。 遥か昔に買って放置していたはじめてのC++を参考に遊んでみたいと思います。まずはHello World。 環境 Linuxでg++を使います。 Hello World 本に載ってたコードを丸写し。 #include <iostream.h> int main() { cout << "Hello C++ World" << endl; ret</iostream.h>…