C++小白求助给位大佬!

`本人C++小白一枚,请各位大佬看看下面这段代码怎么修改正确,最好能附上完整的正确代码,不胜感激!
#include
using std::cout;
using std::endl;
class Demo
{

public:

int* data;
int size;
Demo(int maxn)
{
size = maxn;
data = new int[maxn];

}
~Demo() 
{
    delete data;

}

};
void print(Demo obj)
{
cout << obj.data[0] << obj.data[1] << endl;

}
int main()
{
Demo obj (2);
obj.data[0] = 1; obj.data[1] = 2;
print(Deom obj);

}

#include
using namespace std;

class Demo
{
public:
int *data;
int size;
Demo(int max){
size = max;
data = new int[max];
}
~Demo(){
delete data;
}

};

void print(Demo obj){
cout <<obj.data[0]<<obj.data[1]<<endl;
}

int main(){
Demo *obj = new Demo(2);
obj->data[0] = 1;
obj->data[1] = 2;
print(*obj);

return 0;

}

#include<iostream>
using namespace std;
class Demo
{
public:
    int* data;
    int size;
    Demo(int maxn)
    {
        size = maxn;
        data = new int[maxn];
    }
    ~Demo()
    {
        delete []data;
    }

};
void print(Demo obj)
{
    cout << obj.data[0] << " " << obj.data[1] << endl;

}
int main()
{
    Demo obj (2);
    obj.data[0] = 1; obj.data[1] = 2;
    print(obj);
}