タグ

継承に関するharigelのブックマーク (2)

  • プログラミングメモ - C++ の強い型付けについて少し

    割とよく使うテクニックだと思うんですけれど,ネットを調べた限りあまり扱ってないようなので,少しメモ。 C++ で任意の型を使ったメンバを持ったクラスを作るとき,テンプレート機能を使うことができます。例えば,幾何系プログラムで点クラスを作る場合,実数型の点クラスと離散型(整数型)の点クラスが欲しかったりしますよね(欲しいんです)。こゆとき,次のようなテンプレートを定義にすることで,メンバの値の型をコンパイル時に決めることができます。 template<typename T> class Point { public: // いろいろ private: // T型のメンバ T x_; T y_; }; これを使うときは,こんな風にします。 int main(int argc, char* argv[]) { Point<int> discrete_point; // 離散型の点オブジェクト P

  • プリミティブ値でもプロトタイプ的継承: Days on the Moon

    書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 404 Blog Not Found:javascript - プロトタイプ的継承 (元記事: Prototypal Inheritance) より。継承という言葉は意味が広いので、この操作に対してはチャイルドの作成といったほうが個人的にはわかりやすい。 さて、元記事で紹介されているコードではプリミティブ値からのチャイルドの作成 (継承) ができなかった。これはなぜかといえば、オブジェクト作成の際、プリミティブ値をプロトタイプ ([[Prototype]] 内部プロパティ、__proto__ プロパティ) に設定することはできないからである。 そこで、プリミティブ値が渡された場合は、それをラッパオブジェクトに変換することにする。といっても場合分けの必要はない。Object 関数を使えば、プリミティブ値

  • 1