我需要得到'<<'和'>>'用于指针,因为我在下面为我的驱动程序在main编码。
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; // pointer to null
// using pointers here
cin >> ptrCan;
cin >> nullCan; //
cout << ptrCan << endl;
cout << nullCan << endl; //
return 0;}
我假设我必须在某处实现这些功能,但我不太确定如何:
friend std::ostream& operator <<( std::ostream& outs, const TrashCan * drive );
friend std::istream& operator >>( std::istream& ins, TrashCan * & drive );
答案 0 :(得分:5)
从cin
读取指针几乎不会起作用。这就是为什么语言默认不允许你。像这样的一行:
cin >> ptrCan;
如果允许的话,会丢失(即泄漏)你从new TrashCan( 0, 0 );
前几行获得的对象。
请解释一下你真正想做的事情。