#include <iostream>
using namespace std;
class Demo {
public:
Demo(): val(nullptr) {}
~Demo() {
delete[] this->val;
}
void setVal(int* val) {
this->val = val;
for (int i = 0; i < 5; i++) {
this->val[i] = i;
}
}
friend ostream& operator<<(ostream& os, const Demo obj);
private:
int* val;
};
ostream& operator<<(ostream& os, const Demo obj) {
for (int i = 0; i < 5; i++) {
os << obj.val[i] << " ";
}
return os;
}
int main(void) {
Demo obj;
int* val = new int[5];
obj.setVal(val);
cout << obj << endl;
return 0;
}