Мне нужно получить "<<" и ">>" для работы с указателями, так как я закодирован ниже для моего драйвера в основном.
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 );
Чтение указателя из cin
почти никогда не будет работать. Вот почему язык не позволяет вам по умолчанию. Строка вроде:
cin >> ptrCan;
потерял бы след (т.е. утечку) объекта, который вы получили от new TrashCan( 0, 0 );
несколько строк раньше, если бы это было разрешено.
Пожалуйста, объясните, что вы действительно пытаетесь сделать.