Как реализовать << и >> для указателей?

0

Мне нужно получить "<<" и ">>" для работы с указателями, так как я закодирован ниже для моего драйвера в основном.

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
    Тебе технически запрещено это делать.
  • 1
    Что именно мы набираем, загружается в указатель. Адрес?
Теги:
pointers

1 ответ

5

Чтение указателя из cin почти никогда не будет работать. Вот почему язык не позволяет вам по умолчанию. Строка вроде:

cin >> ptrCan;

потерял бы след (т.е. утечку) объекта, который вы получили от new TrashCan( 0, 0 ); несколько строк раньше, если бы это было разрешено.

Пожалуйста, объясните, что вы действительно пытаетесь сделать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню