#include using namespace std; template class A; template ostream& operator<< (ostream& outstr, const A& a); template // Lo chiamo Pippo per far capire che il nome è irrilevante class A{ public: Pippo* ptr = nullptr; uint size; A(uint size1){ ptr = new Pippo[size1](); size = size1; cout << "A new object is created" << endl; } ~A(){ delete[] ptr; } Pippo& operator[](const uint idx) { return ptr[idx]; } friend ostream& operator<< <>(ostream& outstr, const A&); /* template friend ostream& operator<<(ostream&, const A&); */ }; template ostream& operator<< (ostream& outstr, const A& a) { for(int i=0;i ostream& operator<< (ostream& outstr, const A& a) { for(int i=0;i str(50); A v(10); str[1] = 'k'; v[2] = 3; cout<>) ci sono due metodi: 1. Usare quello che non è commentato, ovvero questo programma. (consigliato) 2. a. Cancellare/commentare righe 4-8 4 template 5 class A; 7 template 8 ostream& operator<< (ostream& outstr, const A& a); b. Cancallare/commentare 35-39 35 template 36 ostream& operator<< (ostream& outstr, const A& a) { 37 for(int i=0;i