Salve, sto svolgendo un esercizio sui costruttori di copia, ma sono incappato in un errore, questo è il codice:
//============================================================================
// Name : costruttoreDiCopie.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
class Array{
int *p;
int size;
public:
Array(int sz){
p=new int(sz);
size=sz;
}
~Array(){delete [] p;}
Array(const Array&a);
void set(int i, int j){
if(i>0&&i<size)
p[i]=j;
}
int get(int i){
return p[i];
}
};
Array::Array(const Array &a){
p=new int[a.size];
for (int i=0;i<a.size;i++)
p[i]=a.p[i];
}
int main() {
Array v(10);
v.set(0,1);
v.set(1,2);
v.set(2,3);
return 0;
}
fin qui tutto ok, ma se aggiungo ad esempio: v.set(3,4);
il mio ide mi da errore dicendomi che il programma ha smesso di funzionare,non posso istanziare + di tre oggetti di tipo Array, come mai?