Entries from 2019-05-01 to 1 month
なんかこれはメモっておいたほうがよいと思ったのでメモ! Testクラスに、char *strというメンバ変数が存在する場合です。 #include <cstring> #include <XXX.h> //XXX.hがローカルにあることを前提 //no args constructor Test::Test() //nullptrで初期化 : str{nullptr} { </xxx.h></cstring>…
コンストラクタからようやく解放!(たぶん) というわけで、最後のMoveコンストラクタですが これはDeep Copyをせずにソースのオブジェクトをコピーせずに値を移動させちゃうようなコンストラクタです 基本的には、r-valueに対して有効と認識しています。(…
Deep Copying / Shallow Copying があるようです。 Shallow copyでCopy Constructorを使用した場合、ポインタを用いているとメモリ破壊が起こることがあります。 要は、Deep Copyingだとcopyされた変数のアドレスを別に保持します! class Shallow { private…
Copyコンストラクタの必要性がいまいちわかっていない。。。 クラスのメンバ達の値を新しいオブジェクトにコピーするって感じで合ってるのやら。。 とりあえず、Copyコンスラクタの定義です。 class Sample { private: char a {"wawawa"}; char b; char c; p…
コンストラクターにも色々ありまして、、、 前回メモしたコンストラクタは、実はちゃんと初期化しているのか!?と言われるとそうでもない、と。 ただ値をアサインしているだけとも言える。 そのため、initialization listをメモ。これはコードも減らせるし…
ほいほい、ついにコンストラクタとデストラクタ 簡単にいうとクラス内メンバの初期化を行ってくれる素晴らしいやつ。 種類があります 1. デフォルトコンストラクタ 2. ユーザー仕様のコンストラクタ 下記例は、2です。1を使う場合、クラス内にコンストラクタ…
さてさてGWは完全にサボってました。totally slacked off メーン! というわけで、再開していきます。 C++のコードってなんでhoge.hとか、hoge.cppとかに分かれているのかな〜ってのがようやくわかりました! たとえば、accout.hというaccountクラスの定義に…