細かいことで最近気づいたことのメモ

  • クラス定義の意味

クラスを定義する意味は、1つには関数が定義できるというところにあると思うが、それ自体あまり重要であると思えない。以下の2つが重要だと思う。また考え方が変わるかもしれない。

  1. データをまとめられる(Cの構造体としての意味)
  2. 演算子オーバーロードができる

1番目はかなり重要に思われる。関連したデータがまとまるし(スコープや依存関係を明確化できる)、データの意味も分かりやすいし、1つのオブジェクトで扱えるので持ち運び便利。かなり可読性上がる。

  • 静的言語の欠点

以前にもいくつか挙げたが、とりあえず1つ疑問点が生まれた。

  1. ある関数の定義を見たときに、引数として渡された変数のデータ型が、初期化や代入されたところまでさかのぼってソースを見返さないと分からない?

使われているところを見れば分かる場合もあるが、逆に先の方まで進めて読んでいなかなといけない場合もあると思うし、使われているところだけで判断できない場合もありそう。まだちゃんと分かっていないが、使われるところで型推論するのなら、複数の型の可能性がある場合とか絶対に存在しないのだろうか?