C++

ベース

テストのベースになるコード。 //complex.hpp class Complex{ public: Complex(int r, int i){ this->r = r; this->i = i; } inline int Real(){ return r; } inline int Imaginary(){ return i; } Complex add(Complex &); Complex sub(Complex &); Complex…

CppUnit

C++

うーん。いまいち知りたい情報が載ってないな。俺が見たいのはXPの解説じゃなくてCppUnitのリファレンスなんだけど・・・やっぱり自分で作るか。

CppUnit関連リンク

C++

http://www.ogis-ri.co.jp/otc/hiroba/technical/CppUnit/ http://www.unittest.org/document/archive/cpp/cppunit/tutorial http://www.s34.co.jp/cpptechdoc/article/cppunit/ http://hywr.kuciv.kyoto-u.ac.jp/~shiiba/programs/unix/documents/cppunit.h…

CppUnit

C++

うーん、結局今日は半日CppUnitに費やしてしまった。とりあえずこんなかんじでしょうか。 //#include #include //#include #include //#include #include //全部インクルードしたほうが無難な気がする・・・ class TestSample : public CppUnit::TestFixture…

もうしないといったけど

C++

#include using namespace std; class A{ public: A(int i){ cout 変換コンストラクタってやつか。で、Aのコンストラクタの前にexplicitをつけると変換されない。あと、aを参照型にしても。予想しない暗黙の型変換を防ぐ意味でも参照にしたほうがいいのだろ…

ふむふむ

C++

http://www.biwa.ne.jp/~chu0296/laboratory/cpp.html#cpp04 派生クラスは基底クラスのすべての純粋仮想関数を再定義しなければ、 派生クラスも抽象クラスになってしまう。 なるほど。JAVAのインターフェイスっぽいことができるわけね。後で試してみよう。

階層構造の継承(昨日の続き)

C++

#include using namespace std; template class M{ public: T* Alloc(void){return new T;} }; class B1{ public: int x; virtual ~B1(){} }; class A1{ public: B1 *b1; M b1alc; A1(){b1 = b1alc.Alloc();} virtual void f(int i){b1->x = i;} }; class B2…

ダウンキャスト or テンプレート

C++

悩ましいことがあります。 #include using namespace std; class A1{ public: virtual ~A1(){} }; class A2 : public A1{ public: void f(){cout (a); a2->f(); } }; int main(){ B2 b(new A2); b.printA(); return 0; } なんのこっちゃだけど、A1と、それを…

関数内クラス

C++

「関数内クラス」でぐぐってくる人がいるみたいなので解説しとこうかな。っていうか調べてみようかな。関数内クラスっていうのはその名のとおり関数内でクラスを定義すること。これによってstd::sortに渡す関数オブジェクトを一時的に定義できるかもしれない…

コンストラクタ

C++

常識かもしれないけど、継承されたクラスを呼び出す際には、明示的に指定しない限り親の引数なしのコンストラクタが呼び出される。 1: #include 2: 3: using namespace std; 4: 5: class A{ 6: public: 7: A(){cout - A B int C int 「コンストラクタは継承…

ダウンキャスト

C++

ダウンキャストってのは、親→子へのキャストのこと。下方向のキャストだからダウンキャストっていうんであって、精度云々とは別問題だと思うんだよなあ・・・ #include using namespace std; class Base{ public: virtual ~Base(){} }; class Derived1 : pub…