Jump to content

Recommended Posts

Posted

Am facut o clasa vector in c++ si am incercat sa definesc operatia de adunare pe componente, dar imi da o eroare.

class vector{
private:
int *p;
int n;
public:
vector(){};
void add(vector other);
vector(int size);
~vector(){delete [] p;}
vector (const vector &v);
int operator[](int i)
{return p[i];}
vector operator=(const vector&a);
};
vector vector::add(vector v){
vector vi;
n=v.n;
for (int i=0;i<n;i++)
vi.p[i]=p[i]+v.p[i];
return vi;
}

Care ar putea fi problema? Mersi mult.

Posted

Problema principala este in functia de adunare. Tu creezi un vector gol, ce are membrul p, neinitializat. p nu indica catre nici o adresa/variabila. Va trebui sa faci in asa fel ca p sa aiba o valoare atunci cand il folosesti, faci un constructor de genul vector(int marime); si initializezi n cu marime si p cu new int*[n]. De asemenea in cazul de fata, cand vi este sters vei primi o eroare pentru ca incerci sa stergi un pointer gol.

Posted
Problema principala este in functia de adunare. Tu creezi un vector gol, ce are membrul p, neinitializat. p nu indica catre nici o adresa/variabila. Va trebui sa faci in asa fel ca p sa aiba o valoare atunci cand il folosesti, faci un constructor de genul vector(int marime); si initializezi n cu marime si p cu new int*[n]. De asemenea in cazul de fata, cand vi este sters vei primi o eroare pentru ca incerci sa stergi un pointer gol.

Facusem initial un constructor de genul:

vector::vector(int size){
n=size;
p=new int[n];
for (int i=0;i<n;i++){
cout<<"Elementul";
cin>>p[i];
}
}

Cand declar vi, il declar vi(x) unde x=v.n?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...