User Tools

Site Tools


programming:cpp:class

This is an old revision of the document!


自作クラス

クラスを自作する必要がある際に考えること

unordered_map などの key に使う際には 'operator==' と hash 関数のオーバーロードが,
ordered なコンテナの key に使う際には'operator<' のオーバーロードが必要

例えば int と double をもつクラスをキーとして使う場合は,

MyClass.hpp
#ifndef MYCLASS_HPP
#define MYCLASS_HPP
 
class MyClass {
public : 
  int var1;
  double var2;
 
  bool operator<(const MyClass &rhs) const;
};
 
#endif
MyClass.cpp
#include "MyClass.hpp"
 
bool MyClass::operator<(const MyClass &rhs) const {
  if ( var1 != rhs.var1 )
    return var1 < rhs.var1;
  return var2 < rhs.var2
}

stream の定義

programming/cpp/class.1650272385.txt.gz · Last modified: 2022/04/18 08:59 by odagawa