1101

工学系大学院生の雑記。

生活リズムを正す

アルバイトの日は24時に退勤し、1時頃帰宅する。

 

帰宅すると、やりたいことをたくさん思いつく。

 

英語の勉強、今日やってないなあ。

OS自作ほったらかしだった。

ロボット工学の勉強しなきゃいけないところあったなあ。

Webサービス作りたいと思ってたんだった。

 

そんなことを考えながら、なぜかまずSNSを開く。

そのまま小一時間SNSをしていると、ゲームをやりたくなってくる。

思いつくままにゲームを始め、気がつくと数時間経っている。

 

外が明るい。

 

今日もやりたいことができなかった、俺は一体なにをしているんだろうという絶望と共に眠りにつく。

 

こうして何もできず生活リズムだけが狂っていくここ最近。

これは正さないといけない。

 

生活リズムを整える方法は分かっている。早寝だ。

 

但しアルバイトの日はどうやっても1時前に就寝することはできない。

 

したがって、帰宅後どれだけ早く床に着くかが重要になる。

 

帰宅後に絶対しなくはいけないことは、着替えと歯磨きくらいだ。

時間でいえば10分とかからない。

 

問題は、やりたいことをたくさん思いついてしまうこと。

 

そのままベッドに入っても、今やらなければいけないのではないかという思考が脳内を占領し、なかなか寝付くことができない。

 

その対処法として、やりたいことを紙に書き出し、翌朝起きたあとにそれらを実行するための行動計画を立ててから寝るという方法を思いついた。

 

こうすれば何もせずに一日を終える罪悪感も緩和されるし、翌日ちゃんと目的を持って起床することで生活にメリハリが生まれる、ような気がする。

 

SNSとゲームに関しては、本来やりたくないと考えているのに惰性でやってしまっているところがある。

 

ゲームはPCに触れないことでやりたくなるきっかけをシャットアウトすることができる。

 

しかしSNSスマホでもできてしまう。これはとりあえず意志力でできるだけ開かないようにする他思いつかない。

非仮想関数・仮想関数・純粋仮想関数の使い分け

書籍『Effective C++』を読んで腑に落ちたので覚え書き。
以下は全てC++を前提に書いています。

非仮想関数・仮想関数・純粋仮想関数の使い分け

クラスをpublic継承する場合、何を継承するかによって2つのパターンに大別されます。
関数の「インタフェース」を継承するか、「実装」を継承するかです。
非仮想関数・仮想関数・純粋仮想関数を使い分けることで、それぞれを表現することができます。

純粋仮想関数

派生クラスにインタフェースのみを継承させるために用います。
つまりメンバ関数の宣言のみ基底クラスで行い、実装は派生クラスで行われます。

仮想関数

純粋仮想関数とは異なり、インタフェースだけでなくデフォルトの実装も継承されます。
再実装を派生クラスで行うこともできますが、
特に変更する必要性がなければ基底クラスの実装をそのまま派生クラスで利用できます。

非仮想関数

非仮想関数は、どの派生クラスにおいても動作が変わらないことを規定します。
宣言も実装も基底クラスで行われ、派生クラスでその実装を変更することはできません。

感想

正直今まで非仮想関数・仮想関数・純粋仮想関数の使い分け方がイマイチ分からず、
『経験の浅いプログラマがしやすい2つの間違い』のひとつとして書籍でも取り上げられているように、
「すべての関数を非仮想に宣言」していました...。
ひとつずつちゃんと理解して、早く良いプログラムが書けるようになりたいです。

2017年7月6日 実験。

今日は研究室で開発中のロボットの実地試験を行うため、電車で約1時間の実験場に向かっています。

2017年6月28日 ブログ開始。

来年からエンジニアとして社会人生活をスタートするということで、

このブログでは勉強や技術ネタをざっくばらんに綴っていきたいと思います。