演算子のオーバーロード・継承のアクセス指定子

とりあえず、はてなダイアリーやってみました。やりながら慣れてみますね。


C++の授業を受け終わって、テストをやったのですが演算子オーバーロード、継承のアクセス指定子、コンパイルの動きに関して弱かったので自分のメモとして記します。

演算子オーバーロード

  1. クラス内のメソッドならば、クラス自身が左辺値となる。なので、クラス自身を右辺値で違う型を左辺値にするとエラーの原因になる。対応するには、クラス外で定義するしかない。
  2. 戻り値を参照にすると、代入することができる。
  3. 前置、後置インクリメントを区別するには、後置の方にダミーの引数を入れておく。

継承のアクセス指定子

  1. publicにすると、public→public、protected→protected
  2. protectedにすると、public→protected、protected→protected
  3. privateにすると、public→private、protected→private

コンパイルの動き

クラスCBaseに、

CBase obj = 1;

とした時に、CBase型にint型を代入できてしまうのはなぜか?という問いが出てきたのです。これはまだ未調査なのでまた後日に。