私はこのクラスを持っています:
// in Platform.h
class Platform
{
private:
float y;
float xi;
float xf;
public:
Platform(float y, float xi, float xf);
virtual ~Platform(void);
float getxi();
float getxf();
};
そして、私はこれを行うことができるようにしたい:
Platform* p = new Platform(1.0,2.0,3.0);
cout << p; // should it be *p?
次のように、「<<」演算子をオーバーロードしてみました。
// in Platform.cpp
std::ostream& operator<<(std::ostream& out, Platform* p )
{
out << "Platform: xi=" << p->getxi() << ", xf=" << p->getxf() << std::endl;
return out;
}
しかし、これはメモリアドレスを出力するだけです(もちろん、p
はポインタであるため...)。上記の関数がまったく呼び出されていないことは確かです。