Visualization Tool Kit(VTK)など

値型と参照型はクラス設計で重要な要素である。
  • 値型: 内部データが同じならば同じものとして扱う。
  • 参照型: 内部データが同じでも異なるものとして扱う。

intやdouble,std::string, 画像,行列: 値型クラス
その他: 参照型

例えばStudentクラスについて考える。


class Student
{
public:
  Student(const std::string name) : name_(name) {}
  Student(const char* name) : name_(name) {}
private:
  const std::string name_;
};


上記クラスで同姓同名の人物は同一人物であろうか?異なるならばStudentは参照型クラスとすべきである。

また、このことと非常に密接な関係にあるのがコピーである。参照型クラスでは定義よりコピーした段階でそれは同一ではなくなる。一方で、値型クラスではコピーしても値が同じ限り同一である。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー

チュートリアル

アルゴリズム(数学)

並列計算

STL

#include<memory> #include<string> #include<sstream> #include<algorithm> #include<functional> #include<numeric>

Media Foundation

【メニュー編集】
Wiki記法ガイド

メンバーのみ編集できます