' P '

whatever I will forget

Entries from 2019-05-01 to 1 month

C++ <cstring>を使うメンバ変数が存在する場合のコンストラクタ定義

C++

なんかこれはメモっておいたほうがよいと思ったのでメモ! Testクラスに、char *strというメンバ変数が存在する場合です。 #include <cstring> #include <XXX.h> //XXX.hがローカルにあることを前提 //no args constructor Test::Test() //nullptrで初期化 : str{nullptr} { </xxx.h></cstring>…

C++ Move Constructor

C++

コンストラクタからようやく解放!(たぶん) というわけで、最後のMoveコンストラクタですが これはDeep Copyをせずにソースのオブジェクトをコピーせずに値を移動させちゃうようなコンストラクタです 基本的には、r-valueに対して有効と認識しています。(…

C++ Deep Copying with copy constructor

C++

Deep Copying / Shallow Copying があるようです。 Shallow copyでCopy Constructorを使用した場合、ポインタを用いているとメモリ破壊が起こることがあります。 要は、Deep Copyingだとcopyされた変数のアドレスを別に保持します! class Shallow { private…

C++ Copy Constructor

C++

Copyコンストラクタの必要性がいまいちわかっていない。。。 クラスのメンバ達の値を新しいオブジェクトにコピーするって感じで合ってるのやら。。 とりあえず、Copyコンスラクタの定義です。 class Sample { private: char a {"wawawa"}; char b; char c; p…

C++ Constructor Initialization List, Delegating constructor

C++

コンストラクターにも色々ありまして、、、 前回メモしたコンストラクタは、実はちゃんと初期化しているのか!?と言われるとそうでもない、と。 ただ値をアサインしているだけとも言える。 そのため、initialization listをメモ。これはコードも減らせるし…

C++ Constructor / Destructor

C++

ほいほい、ついにコンストラクタとデストラクタ 簡単にいうとクラス内メンバの初期化を行ってくれる素晴らしいやつ。 種類があります 1. デフォルトコンストラクタ 2. ユーザー仕様のコンストラクタ 下記例は、2です。1を使う場合、クラス内にコンストラクタ…

C++ メンバーメソッドの実装

C++

さてさてGWは完全にサボってました。totally slacked off メーン! というわけで、再開していきます。 C++のコードってなんでhoge.hとか、hoge.cppとかに分かれているのかな〜ってのがようやくわかりました! たとえば、accout.hというaccountクラスの定義に…