string& string::operator=(const string& a)
{
if (this !=&a) { // opasno, kogda s=s
delete p;
p = new char[size=a.size];
strcpy(p,a.p);
}
return *this;
}
Foydalanuvchi qiymat berish operatori initsializatsiya qilinmagan obyektga qo’llanmaydi. Bu xolda p ko’rsatkich tasodifiy qiymatga ega bo’ladi.
Initsializatsiya masalasini xal qilish uchun nusxa olish konstruktori kiritish lozim:
string::string(const string& a)
{
p=new char[sizeqsz];
strcpy(p,a.p);
}
Topshiriqlar:
1. Variantga mos keluvchi sinfni tanlang. Qo’shimcha yuklangan operatsiyalar bilan sinf tavsifini to’ldiring. Shu operatsiyalarni amalga oshiring. Testlashni bajaring.
2. Variantga mos keluvchi vazifani bajarish uchun funktsional sinf yarating. Testlashni bajaring.
Do'stlaringiz bilan baham: |