I am learning classes in c++ so I try different things to get used to the classes. Here I am trying to pass a pointer to a class function:
class Pointerss{
    int size;
public:
    Pointerss(int);
    void f();
    int *a;
};
Pointerss::Pointerss(int siz){
    size = siz;
}
void Pointerss::f(){
    cout<<"Size is:"<<size<<"\n";
    for (int i=0; i<size; ++i) {
       cout<<"a is:"<<a[i]<<"\n";
    }
}
int main() {
    int size = 5;
    Pointerss dd (size);
    Pointerss * p = new Pointerss(size);
    p[0]=1; p[1]=2; p[2]=3; p[3]=4; p[4]=5;
    p->a;
    dd.f();
    return 0;
}
So the "size" is initialized by a constructor and when "f()" is called the correct digit is printed. But when I assign "p" to "a" ("p->a") and then call "f()" some random numbers are printed. My computer prints :
Size is:5
a is:0
a is:0
a is:1
a is:0
a is:1606416856
Program ended with exit code: 0
what is the difference between "a" and "size" and what should I do to pass a pointer to a function?
 
     
    