Hi!
This is my code
Code:
//Main
#include "Class_header.h"
#include <iostream>
using namespace std;
int main ()
{
vectorOfint some_array;
some_array.print();
vectorOfint copy_of=some_array; //Copying class
copy_of.print();
}
// defining methods
#include "Class_header.h"
#include <iostream>
using namespace std;
vectorOfint::vectorOfint() //Constructor
{
for (int i=0;i<32;i++)
{
p_array[i]=i;
}
}
vectorOfint::vectorOfint(const vectorOfint& other) //Copy constructor
{
int *p_array=new int[32];
x=4;
for (int i=0;i<32;i++)
{
p_array[i]=other.p_array[i];
}
}
void vectorOfint::print()
{
for (int i=0;i<32;i++)
{
cout<<p_array[i]<<" ";
}
cout<<"\nx is "<<x<<'\n'<<'\n';
}
//Header
class vectorOfint
{
public:
vectorOfint(); //Constructor
vectorOfint(const vectorOfint& other); //Copy constructor
void print ();
private:
int *p_array=new int[32];
int x=0;
};
Problem is that if I call some_array.print(), it prints out numbers 0-31 and "x is 0" as it should. But if I call copy_of.print(); it prints out 32 random numbers and "x=4". It changes x but can´t copy members of array. Why?