测试虚函数输出怎么有多余字符
代码奉上:
- C/C++ code
#include <iostream>#include <fstream>using namespace std;class Point{public: Point(float aVal):m_X(aVal) { ++m_PointCount; } virtual ~Point() { --m_PointCount; } float GetData() const { return m_X; } static int GetPointCount() { return m_PointCount; } virtual ostream& Print(ostream & aStream) const { aStream << "m_X: " << m_X << endl << "m_PointCount: " << m_PointCount << endl; return aStream; }protected: float m_X; static int m_PointCount;}; int Point::m_PointCount = 0;class Point2D : public Point{public: Point2D(float aXVal, float aYVal):Point(aXVal),m_Y(aYVal) { } virtual ~Point2D() { } virtual ostream& Print(ostream& aStream)const { Point::Print(aStream); aStream << "m_Y: " << m_Y << endl; return aStream; }protected: float m_Y;};int main(){ Point *lP1 = new Point2D(0.5,0.6); cout << lP1->Print(cout); delete lP1;}难道我看错了,还是代码写的有问题?
[解决办法]
cout << lP1->Print(cout);
改为 lP1->Print(cout);
你写得那句输出了 输入输出流缓冲的地址。