【发布时间】:2013-11-24 19:32:46
【问题描述】:
我正在尝试添加这些功能:
friend std::ostream& operator <<( std::ostream& outs, const TrashCan * drive );
friend std::istream& operator >>( std::istream& ins, TrashCan * & drive );
所以它在 main 中与这个驱动程序代码一起正常工作:
#include <iostream>
#include <stdexcept>
#include "TrashCan.h"
int main( ) {
using namespace std;
cout << "Welcome to my TrashCan Program!" << endl;
TrashCan myCan;
TrashCan yourCan;
TrashCan empty( 0, 0 );
TrashCan * ptrCan = new TrashCan( 0, 0 );
TrashCan * nullCan = NULL;
// using overloaded operations for pointers...
cin >> ptrCan;
cin >> nullCan; //
cout << ptrCan << endl;
cout << nullCan << endl; //
我的垃圾箱类构造函数是这样的:
TrashCan( int size, int contents );
我熟悉重载 + - 和 ≤ 等简单操作,但在重载 iostream 函数以使其与指针一起工作时,我感到很困惑。有什么想法吗?
【问题讨论】:
-
最终目标是提供一种将这些对象序列化到磁盘或从磁盘序列化的方法吗?
-
我对您的实际问题有点困惑。这个程序可以编译吗?如果不是,错误信息是什么?还是您在询问最佳做法?
标签: c++ pointers operator-overloading