C++

初期化子リスト

C++

C++ のコンストラクタで変数を初期化するやりかたでなく、 こんな初期化の方法もある。コンパイラの処理の仕方も微妙に違うらしい。2010/09/24 C++コンストラクタの初期化子リストhttp://sygh.blog.ocn.ne.jp/blogitems/2010/09/c_6d39.html ちょっとしたマ…

コピーコンストラクタ - 基礎だけど大事なこと

C++

最近はpython, javaばっかりでたまにc/c++をさわると、いろいろ覚えたことや 50%ほど理解していたのものが、(理解度が)薄まっていることにきずく。皆様もきっとこんな経験があるはずだ。今日、まさにそれに当たるのがコピーコンストラクタだ。コピーコンス…

オブジェクトを持つvectorを作成する時は!

C++

オブジェクトを持つvectorを作成する オブジェクトはデフォルトコンストラクター、ディコンストラクターに加え、 コピーコンストラクターを定義しておく必要がある。!http://homepage2.nifty.com/well/STL.html

c_str() はread-onlyやねん

C++

I got stuck and very frastrated why the folloing error is thrown, cannot convert parameter 1 from 'const char *' to 'char *'when I execute cp = strtok_s(str, delimiter.c_str(), &cpx); answer is that c_str() returns const char*, read only. …

iterator < vector.end() 比較

c++

vectorのiteratorは基本 インクリメントするようにしか 設計されていない。iter同士の比較はあてにならない。多分つかってはいけない。 e.g.vector v; vector::iterator i = v.begin(); i += 5; if(i!=v.end()){ i++; } 上は無限ループかな?if(i } こういう…

vector with printf

C++

for those who uses c++ for long might think this is trivial.vector v_str; v_str.push_back("hello"); printf("%s\n", v_str[0]); give you "null"because printf doesn't covert string to c string itself, you have to do it yourself, like v_str[0]…

構造体での中身代入時になぜかエラー

C++ C

#include typedef struct item{ int id; struct item * next; }item_t;void add(struct item * ori, struct item * tar); /* oh, my god, I spend 1 hours, why the hell, item_t linearList; linearList.id = 0; item_t aa; aa.id = 1; throws compile erro…

配列へのポインタ。char (*) [3] これー、意味分かる?

c++

char (*) [3]; これコンパイルとおります。char *x [3]; これの意味はcharへのポインタが3つからなる配列をつくる。じゃあこれは!? char (*x) [3]; これは、上とおなじじゃない!?違います。 これは char型が3つお要素からなる配列へのポインタです。ち…

参照とポインタ

アンパサドを使って宣言する、Cにはない参照型。 C++で導入されたこの参照をしっかりと理解したかった。 すこし、C++から離れているといつも少しの?マークが頭の片隅をふわつくことがあるので、しっかりメモしておきたい。といっても、参照とポインタが非常…