だから私は次のクラスを持っています:
class smartA
{
public:
int *p;
int size;
smartA(){size=10; p = new int [size];}
smartA (int x){size=x; p = new int [x];}
smartA(int y[], int x ){size=x; p = new int [x]; for (int i=0 ; i<x ; i++) p[i]=y[i];}
smartA(const smartA &a) {*this=a;}
~smartA(){delete [] p;}
void displayA()
{
for (int i=0; i<size; i++)
{ cout<<setw(4)<<p[i];
if (((i+1)%5)==0 && i!=0)
cout<<endl;}
cout<<endl<<endl;
}
void setsmartA(const int a[], int sizea)
{size=sizea; p = new int[size]; for (int i=0 ; i<size ; i++) p[i]=a[i];}
};
2 つのスマート配列オブジェクトを 3 つ目のスマート配列オブジェクトにマージする関数を作成するにはどうすればよいですか? 動的配列でなければならないため、各スマート配列の要素にアクセスするのに問題があります。
たとえば、次のメンバー関数を追加するとエラーが発生します。
smartA add(smartA a)
{
smartA c(a.size+size);
int i=0;
for ( ; i<a.size ;i++)
c.p[i]=a.p[i];
for (int j=0; j<a.size+size; j++, i++)
c.p[i]=p[j];
return c;}