我有这门课:
// 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
是一个指针......)。我很确定上面的函数根本没有被调用。