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.
Do'stlaringiz bilan baham: |