memomemo

asしかやった事ない私がつまずいたとこメモです。なんか間違ってたらコメントください。

C++

int8,16,32,64 とか範囲忘れるのでメモ

C++

型 出力範囲 int8 -128 ~ 127 int16 -32,768 ~ 32,767 int32 -2,147,483,648 ~ 2,147,483,647 int64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 uint8 0 ~ 255 uint16 0 ~ 65,535 uint32 0 ~ 4,294,967,295 uint64 0 ~ 18,446,744,073…

イテレータ

C++

C++数値の3桁区切り - memomemo のなかのイテレータ部分ですー - std::vector::reverse_iterator リバースイテレータなるもの。 まず イテレーターって? こちらから引用 配列やリストのようにデータがいくつか連なっているもの(格納庫)に対して、どの格納…

C++数値の3桁区切り

C++

三桁で区切って 1,000,000 って表示したい! ってことでググりました。こちら↓の方のものを使わせてもらったんですが とあるソフトウェアエンジニアのブログ std::string formatNumber(int num) { std::vector<int> sepnum; int number = abs(num); int sgn = num</int>…

Union

C++

Union 共同体 名前かっこいい。 //hpp union { ui::label* label; graphics::sprite* sprite; } content; //cpp content.label = label_ みたいな感じで、書く。 メモリの領域を共同でつかう共同体なんだと。 便利。初期化は最初のメンバの型の値でしかでき…

2.0f の f

C++

2.0f の f、 floatのfなのは分かってたけども、 なんでわざわざ書かないといけないのかと思ってたんだが、 f つけないと double型になっちゃうんだって。スッキリ(*´д`*)〜з

スコープとスコープ解決演算子

C++

スコープとは 関数とか変数が使える視野•範囲(scope)の事。 {}でかこまれた中がスコープで、 そのスコープぬけたら、使えなくなる。関数の {} だけじゃなく、すべての {} のはなし。 なのでforとかifとかじゃなくても{}つけたらいけるんだと。 でグローバル…

.hファイルにも.cppファイルにも関数定義できるけどー

C++

.hファイルにも //hoge.h bool isA() { ....... return true; } みたいに関数定義ができるけど。 結局どっちにかいたらいいのかという話。cppファイルに //hoge.cpp #include "hoge.h" void main() { .... } する。 そーすると、hファイルの内容がそのままペ…

operator

C++

operator は 演算内容を指示する記号などのこと。 演算の対象となる値や変数は operand という。operatorで出来る事は 演算子のオーバーロード 型変換演算子 演算子のオーバーロード 演算子 +とか=を書き換えれる。 cocosのPointの中↓ Point& Point::operato…

文字 と 文字列

C++

文字 'a' 文字列 ”abc”' 'と" "は使い分けないといけない。あと 文字では 2バイト文字とかの16 ビット文字コードは扱えない。 'あ' はエラー

乱数 rand() は初期化が必要なんだって

C++

初期化しないと、毎回おんなじ結果がかえってくるんですねー //初期化 srand((unsigned int)time(NULL)); //0〜5までの乱数 rand()%6

log の %i とか

C++

ログだすのにこんな書き方しないといけないのねー 何がどれだったか忘れるのでメモboolは整数としてしか出力できないっぽい? bool b = false; int i = 1; char c[10] = {"char"}; float f = 1.0f; std::string s = std::string("string"); log("%d", b); lo…

#define

C++

反復して使う処理を短い、わかりやすい形に書き換える#define マクロ名 値 #define マクロ名(引数) 処理コード hファイルでよく書く CREATE_FUNC はこんな感じなのねー #define CREATE_FUNC(__TYPE__) \ static __TYPE__* create() \ { \ __TYPE__ *pRet = n…

sqrt, sqrtf, sqrtl と pow, powf, powl

C++

平方根を英語で square root sqrt 戻りがdouble sqrtf 戻りがfloat sqrtl 戻りがlong べき乗を英語で power pow 戻りがdouble powf 戻りがfloat powl 戻りがlong

スマートポインタ

C++

気が利くポインタらしい。 スマートポインタが管理しているメモリ領域が不要になったら自動的に解放してくれるんだと。 すてき!std::unique_ptr : スコープをぬけて、変数の寿命が尽きるとそのメモリ領域を開放 std::shared_ptr : 参照カウントを持ち、参…

キャスト cast

C++

//古いやり方みたい↓ (CheckBox *)checkBox //or static_cast<CheckBox*>(checkBox->clone()); 他にもあるみたい。 dynamic_cast static_cast reinterpret_cast const_castこちらのブログがわかりやすかったー</checkbox*>

オーバーライドとオーバーロードは別物です

C++

オーバーライド 継承した時の、関数の上書き。 C++の場合はとくに overrideってかかなくても、同じ関数名で書くと上書かれる オーバーライド 同じクラスに同じ関数名で何個もかける。 戻りの型、引数の型、数がちがうやつ何個でも。 例) Button* createWith…

なんぞや std::function<void()> 

C++

コールバックができるー C++11からこんな書き方ができるようになったらしい Button* Button::create(const std::function<void()>& callback) { _callback = callback; } //よびかた void Butoon::onPush() { if(_callback) {_callback();} } 渡し方 std::function<void()> c</void()></void()>…

enum

C++

「選択肢」を表す整数の定数を定義するための変数型 同じグループの(整数の)定数をまとめてかけるもの たとえば const int YEN = 0; const int DOLLOR = 1; const int EURO = 2; を↓ enum { YEN, DOLLOR, EURO } 勝手に上から0,1,2がはいる