Реферат Курсовая Конспект
Extern ofstream fo; - раздел Информатика, Элементы класса секция private Секций м.б. несколько Vec::vec():ne(0),v(Null) {Fo<<"v...
|
VEC::VEC():ne(0),v(NULL)
{fo<<"VEC() n"; }
VEC::VEC(int n) : ne(n), v(new double[n])
{fo<<"cst1 "<<this<<' '<<v<<endl;}
VEC :: VEC (VEC& a) //К-р инициализирует чистую память
{int i; ne=a.ne;
v=new double[ne];
for (i=0; i<ne; i++) v[i] = a.v[i];
//*this=a; // это копирование здесь не работает (поверхностное)
//Объект а:
//а. ne; a.v-–> |
// this->v=a.v; эта ссылка будет неопред., если а будет удалено.
//this->ne=a.ne; Здесь необходимо копирование глубинное.
fo<<"VEC(VEC& a)-cst2"<<this<<' '<<v<<endl; }
VEC::~VEC()
{fo<<"~VEC()dst "<<this<<' '<<v<<endl;
delete []v; }
double& VEC::operator [] (int i)
{if (i<0||i>=ne){fo<<"index is out of diapazon"<<endl; exit (0);}
return v[i];}
VEC& VEC::operator = (VEC& y)
{int i; fo<< "VEC::operator=(VEC& y)"<<this<<' '<<v<<endl;
if(y.ne!=ne){ delete [] v;
ne=y.ne; v=new double[ne];
for(i=0; i<ne; i++) v[i]=y.v[i];}
else if(this!=&y) for(i=0; i<ne; i++) v[i]=y.v[i];
return *this;
}
VEC VEC::operator+(VEC& y)
{int i, nm, p;
//fo<<"VEC::operator+(VEC& y)"<<this<<' '<<&y<<endl;
nm=y.ne;p=0; if(ne>nm) {nm=ne;p=1;}
VEC z(nm); //VEC* z = new VEC(nm); чтобы работало с &
if(p){z=*this;
for(i=0;i<y.ne;i++)
z.v[i]=z.v[i]+y.v[i];}
else {z=y;for(i=0;i<ne;i++)z.v[i]=z.v[i]+v[i];}
– Конец работы –
Эта тема принадлежит разделу:
Классы... Класс это определяемый пользователем тип это абстрактный тип он описывает... Данные класса их еще называют полями сравнить со структурой это характеристики объекта...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Extern ofstream fo;
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов