+ turdosh sinflar uchun umumiy harakatlarni belgilash uchun bitta nomdan foydalanishga ruxsat berishni anglatadi


Download 0.49 Mb.
bet5/6
Sana03.02.2023
Hajmi0.49 Mb.
#1152807
1   2   3   4   5   6
Bog'liq
Дастурлаш 2 ўзб

template<class T>
class Val{
public:
T val;
Val operator ++(){
val ++;
return *this;
}
};
template<>
class Val<char>{
public:
char val;
Val operator ++(){
val = (val - 96) % 26 + 97;
return *this;
}
};
int main(){
Val<int>a;
Val<char>b;
a.val = 5;
b.val = 'x';
for(int i = (++a).val; i > 0; i --)
cout << (++b).val;
return 0;
}
+ yzabcd
= xyzabc
= xyz{|}
= yz{|}~

? Quyidagi dastur qismiga n soniga 10 kiritilsa dastur natijasini chop eting


 
int get(int n){
return n < 2 ? n : get(n-1) + get(n-2);
}
int main(){
int n;
cin >> n;
cout << get(n);
return 0;
}
+ 55
= 34
= 21
= 13

? Meros klass konstruktorini yaratishda:


+ Voris sinfi uchun konstruktor yaratishda u merosxo'r sinf nomi bilan bir xil nomga ega bo'lishi kerak.
= Merosli sinf uchun konstruktor yaratishda u asosiy sinf nomi bilan bir xil nomga ega bo‘lishi kerak
= Voris sinfini yaratganingizda, konstruktor yaratilmaydi. Voris sinfi konstruktori asosiy sinfning xossasi sifatida qabul qilinadi
= Barcha javoblar to'g'ri

? Polimorfizm quyidagi mexanizm orqali amalga oshiriladi:


+ funksiyalarni qayta yuklash, merosxo’rlik , virtual funksiyalar
= funksiyalarni qayta yuklash, metodlarni vorislik bilan yuborish, qoliplar
= usullarni meros qilish , virtual funksiyalar, qoliplar
= yuklash funksiyalari qayta yuklash, virtual funksiyalar, qoliplar

? Funksiyalar virtual deb ataladi:


+ Asosiy sinfdan olingan voris sinfda qayta aniqlanishi mumkin bo'lgan funksiyalar
= olingan sinfda ishlatilmaydigan asosiy sinf funksiyalari;
= asosiy sinfda bekor qilib bo'lmaydigan asosiy sinf funksiyalari;
= asosiy sinfda bekor qilib bo'lmaydigan asosiy sinf funksiyalari

? Quyidagi dastur qismi to’g’ri ishlashi uchun dasturchi tomonidan tuzilgan Complex sinfi ichida qaysi operator overload qilingan bo’lishi kerakligini aniqlang


class Complex{
public:
int real, imag;
Complex(int real, int imag):real(real), imag(imag){}
// operator overload uchun joy
};
int main(){
Complex a(3, 4);
a = -a;
cout << a.real << ' ' << a.imag;
return 0;
}
+ Complex operator -()
= Complex operator —-()
= Complex operator -(Complex a)
= Complex friend operator -(Complex a, Complex b)

? Do'st funksiya bu -


+ friend atributiga ega sinfda e'lon qilingan funksiya, lekin sinf a'zosi bo’lmagan
= argumentlari orasida ushbu sinfning elementlari mavjud bo'lgan boshqa sinfning funksiyasi
= sinf a'zosi bo'lgan va do'st atributi bilan e'lon qilingan funksiya
= boshqa sinfda bu funksiyaga mos deb e'lon qilingan funksiya

? Meros klass konstruktorini yaratishda:


+ Voris sinfi uchun konstruktor yaratishda u merosxo'r sinf nomi bilan bir xil nomga ega bo'lishi kerak.
= Merosli sinf uchun konstruktor yaratishda u asosiy sinf nomi bilan bir xil nomga ega bo‘lishi kerak
= Voris sinfini yaratganingizda, konstruktor yaratilmaydi. Voris sinfi konstruktori asosiy sinfning xossasi sifatida qabul qilinadi
= Barcha javoblar to'g'ri

? Agar asosiy sinf va merosxo'r sinf o'rtasidagi murojat private bo'lsa, nima bo'ladi:


+ Asosiy sinfning protected va public xususiyatlari va usullari merosxo'r sinf uchun private bo'ladi.
= Asosiy sinfning protected xususiyatlari va usullari merosxo'r sinf uchun public bo'ladi
= Asosiy sinfning public xususiyatlari va usullari merosxo'r sinf uchun protected bo'ladi
= Asosiy sinfning public xususiyatlari va usullari merosxo'r sinf uchun public bo'ladi.

? Bir nechta sinflardan meros olish jarayonini ko'rsating.


+ class Derived: Access Base_1, Access Base_2, …{ };
= class Base_1, Base_2, …:Access Derived{};
= class Derived: Access Derived_2: Access:Base{};
= class Derived:{ Access Base1, Base2, …}{ };

? Vorislik bu-


+ Bir ob'ekt boshqa ob'ektning xossalari va usullarini oladi, ya'ni bir sinf boshqa sinfdan meros oladi.Birinchi sinfning barcha atributlari va usullari ikkinchi sinfga o'tadi.
= Ob'ektlar tashqi omil ta'siridan himoyalanmagan, ya'ni ob'ektning o'zi boshqa ob'ektlarga tegishli, huquqlar berilmaydi.
= Kirish huquqlari har doim ochiq bo'lgan yangi yaratilgan sinf.
= Ob'ektlarni boshqa ob'ektga ko'chiradi

? To'plamli vorislik … uchun qo'llaniladi.


+ Voris sinfni ikkita va undan ortiq ota sinf xususiyatlari bilan ta'minlash.
= Shablonlarni bir nechta bazaviy (ota) sinflari bilan ta'minlash.
= Bir nechta shablon sinfni bazaviy (ota) sinflari bilan ta'minlash uchun.
= Algoritmni u bilan ishlaydigan konkret ma'lumot turlaridan ajratish.

? #include


using namespace std;
class A{
private:
int a = 25;
int funk_1()
{
return a -10;
}
int funk_2()
{
return a*a;
}
public:
int display()
{
return funk_1() + funk_2();
}
};
class B:public A{
public:
void result()
{
cout << " Result: " << display();
}

};

int main()
{
B x;
x.result();
}
Ushbu dasturni bajarish jarayonida qanday natija ko'rsatiladi.
+ Result: 640
= Result: 625
= Result: 15
= Result: 40

? Quyidagi dastur natijasini aniqlang


#include
using namespace std;
template
class Val{
public:
T val;
Val operator ++(){
val ++;
return *this;
}
};
template<>
class Val{
public:
char val;
Val operator ++(){
val = (val - 96) % 26 + 97;
return *this;
}
};
int main(){
Vala;
Valb;
a.val = 6;
b.val = 'v';
for(int i = (++a).val; i > 0; i --)
cout << (++b).val;
return 0;
}
+ wxyzabc
= vwxyzab
= vwxyz{|
= wxyz{|}

? Ushbu dasturni bajarish jarayonida qanday natija ko'rsatiladi.


#include
using namespace std;
class A
{ public:
A() { f(); }
virtual void f()
{ cout << "A::f"; } };
class B : public A
{ public:
void f()
{ cout << "B::f"; } };

int main( )
{ A * a = new B(); delete a; return 0; }
+ A::f
= B::f
= А
= f

? Quyidagi dasturda n soniga 9 kiritilsa dastur natijasini chop eting


#include
using namespace std;
int get(int n){
return n < 2 ? n : get(n-1) + get(n-2);
}
int main(){
int n;
cin >> n;
cout << get(n);
return 0;
}
+ 34
= 55
= 21
= 13

? Funksiyani qayta aniqlashga nisbatan quyidagi fikrlardan qaysi biri noto‘g‘ri


+ Funksiyani faqat bir marta qayta aniqlash mumkin.
= Qayta aniqlangan funksiya bir xil qaytish turiga va bir xil parametrlar ro'yxatiga ega bo'lishi kerak.
= Qayta aniqlangan funktsiyani sinf ichida bajarib bo'lmaydi.
= Statik funktsiyani bekor qilib bo'lmaydi

? To'g'ri mulohozani tanlang:


+ do'stona funksiya sinf ichida e'lon qilinadi, sinf elementlariga murojat qilish imkoni mavjud bo’ladi
= do'st funksiya oddiy funktsiya bo'lishi mumkin emas, faqat boshqa sinfning usuli
= bitta funktsiya ko'p sinfga do’st bo’lishi mumkin
= do'st funktsiya boshqa sinf metodi bo'lishi mumkin emas

? Agar asosiy sinf va merosxo'r sinf o'rtasidagi murojatlar public bo'lsa, unda nima bo'ladi:


+ Asosiy sinfning protected va public xususiyatlari va usullari mod ravishda merosxo'r sinf uchun protected va public bo'ladi.
= Asosiy sinfning public va private xususiyatlari va usullari merosxo'r sinf uchun public bo'ladi
= Asosiy sinfning protected va public xususiyatlari va usullari merosxo'r sinf uchun private bo'ladi.
= Asosiy sinfning protected xususiyatlari va usullari merosxo'r sinf uchun public bo'ladi.

? #include


using namespace std;
class Inkapsulyatsiya
{
private:
int x;

public:
void set(int a)
{
x =a;
}
int get()
{
return x;
}
};
int main()
{
Inkapsulyatsiya obekt;
obekt.set(15);
cout< return 0;
}
Ushbu dasturni bajarish jarayonida qanday natija ko'rsatiladi.
+ 15
= A
= set()
= set(15)

? Agar merosxo'r sinfini yaratishda asosiy sinfga murojaat qilishda kirish darajasi (Kirish) ko'rsatilmagan bo'lsa, u holda qaysi kirish darajasi ishlaydi


+ Private
= Protected
= Public
= Kirish darajasi belgilanishi kerak

? Quyidagi dastur qismi natijasini aniqlang.



Download 0.49 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling