所以在我的程序中,我有一些类——Button、Window 和 WindowButton。Button 仅由文本组成,Window - 由按钮和坐标(x,y)组成,WindowButton 由 Window 组成。在 WindowButton 中,我重载了 << 运算符,如下所示:
ostream& operator<<(ostream& out, WindowButton& ref)
{
ref.print();
return out;
}
打印功能如下所示:
void WindowButton::print()
{
theWindow->print();
}
和窗口打印功能,在窗口类:
void Window::print()
{
char* buttonText = button->getText();
char* theText = new char[strlen(buttonText)+1];
strcpy(theText, buttonText);
cout << endl << "Window with coordinates (" << this->coord.x << "," << this->coord.y << ") , and button text \"" << theText << "\"" << endl;
}
主要:
WindowButton *test = new WindowButton();
cout << endl << test;
test->print();
最后一行提供了正确的输出,但第二行只提供了一个内存地址。我究竟做错了什么?一切都应该正常工作,因为 test->print(); 工作正常。