45 жылға арналған C ++ сұхбатына арналған 2021 үздік сұрақ


Төменде C ++ сұхбаттасудың негізгі сұрақтары, сонымен қатар c ++ сұхбаттасудың кеңейтілген сұрақтары қамтылған қарапайым C ++ сұхбат сұрақтары келтірілген. Бұл оқулық сонымен қатар сұхбаттасуға дайындалуға көмектесетін C ++ техникалық сұхбат сұрақтары мен тәжірибелі адамдарға арналған C ++ сұхбат сұрақтарын қамтиды.

Мазмұны

1. С ++ дегеніміз не?

C ++ - бұл процедуралық және объектіге бағытталған бағдарламалау тілін қолдайтын С бағдарламалау тілінің суперсет.

2. C ++ тілінің артықшылықтары қандай?

  • Портативті: кез-келген платформада жұмыс істей алады
  • Нысанға бағытталған бағдарламалау тілі: сыныптарды, объектілерді, полиморфизмді, шамадан тыс жүктеуді, мұрагерлікті және т.б. қолдайды.
  • Деректерді жасыру: басқыншылардан деректерді қорғайды
  • Хабарлама жіберу: нысандар арасындағы байланысты жеңілдетеді

3. С мен С ++ арасындағы айырмашылықтар қандай?

CC ++
Деннис Ричи жасағанBjarne Stroustrup әзірлеген
Құрылымдық бағдарламалау тіліБағдарламаланған құрылымдық және объектілік тілді қолдайды
Бұл C ++ жиынтығыБұл C-дің суперсет
Деректерді жасыруды қолдамайдыДеректерді жасыруды қолдайды
Функцияның шамадан тыс жүктелуін немесе оператордың шамадан тыс жүктелуін қолдамайдыФункцияны да, оператордың шамадан тыс жүктелуін де қолдайды
Анықтамалық айнымалыларды қолдамайдыАнықтамалық айнымалыларды қолдайды
Scanf () және printf () стандартты кіріс және шығыс ретінде қолданадыCin және cout стандартты кіріс және шығыс ретінде қолданады
Құрылым ішіндегі функцияларды орындау мүмкін емесҚұрылым шеңберінде функцияларды орындай алады

4. Сынып дегеніміз не?

Сынып анықтайды мәліметтер құрылымы. Басқаша айтқанда, ол сонымен қатар пайдаланушы анықтаған болып табылады деректер түрі бұл класс кілт сөзінің көмегімен көрсетіледі. Онда бар функциялары мен мүшелері біз сынып объектісін немесе данасын пайдалана отырып қол жеткізе аламыз. Мысалы, бізде EmpName, EmpId мүшелері және getName () және setName () функциялары бар Employee сыныбы болуы мүмкін. Біз бір сынып үшін бірнеше даналар жасай аламыз.

5. Нысан дегеніміз не?

Объект дегеніміз - күйі мен мінез-құлқы бар класстың данасы. Біз объектілерді қолдана аламыз қол жеткізу функциялары және сынып мүшелері. Кез-келген нысанды жасасақ, ол жадыны бөледі немесе оны қалай құрғанымызға байланысты сақтау орны.

6. OOP әртүрлі ерекшеліктері немесе түсініктері қандай?

Төменде OOP ерекшеліктері немесе тұжырымдамалары келтірілген:

  • сынып
  • зат
  • Мұрагерлік
  • Инкапсуляция
  • Абстракция
  • Мәліметтерді байланыстыру
  • Полиморфизм

7. С ++ тіліндегі мәліметтер типтері қандай?

Төменде басқалары бар деректер түрлері C ++ тілінде:

  • Алдын ала анықталған деректер түрлері: int, char, float және double
  • Пайдаланушы анықтаған мәліметтер типтері: Массивтер, көрсеткіштер, жолдар және құрылымдар

8. С ++ тілінде сақтау кластарының түрлері қандай?

Сақтау сабақтарының әр түрлі түрлері:

  • автоматтық
  • Тіркеу
  • Статикалық
  • сыртқы
  • Өзгеретін

9. С ++ тіліндегі жетондар қандай?

Маркер - бұл бағдарламаның кішкене бөлігі. Төменде C ++ тілінде жетонның әртүрлі түрлері келтірілген:

  • Сызықтар
  • Идентификаторлар
  • КҰқсас сөздер
  • Тұрақтылар
  • Операторлар

10. C ++ автоматты түрде қоқыс жинауға ие ме?

Жоқ, C ++ қоқысты автоматты түрде жинауды қолдамайды.

11. С ++ полиморфизмінің әртүрлі түрлері қандай?

Полиморфизмнің 2 түрі бар:

  • Компиляциялық уақыттағы полиморфизм: Функцияға шақыру компиляция кезінде анықталатын статикалық полиморфизм деп те аталады.
  • Орындау полиморфизмі: Функцияға шақыру жұмыс кезінде анықталатын динамикалық полиморфизм деп те аталады.

12. C ++ тілінде кеш байланыстыру қалай жүзеге асырылады?

Виртуалды кестелерді пайдалану

13. С ++ тіліндегі атау кеңістігі дегеніміз не?

Атаулар кеңістігі - бұл біз ауыспалы атаулардағы аты-жөндер арасындағы қайшылықты және екіұштылықты жою үшін қолданылатын код бөлігі. Бұл әр түрлі функциялар үшін бір айнымалы атау болған кезде пайдалы. Атаулар кеңістігін пайдалану арқылы біз бұл түсініксіздікті алып тастай аламыз. Біз аттар кеңістігін төмендегідей анықтай аламыз:

namespace name {
//body
}

Біз айнымалы атауына аттар кеңістігінің атауына төмендегідей қол жеткізе аламыз:

namespace_name :: variable_name;

14. Көрсеткіштерде қандай әр түрлі операцияларға рұқсат етілген?

Көрсеткіштер қолдайтын екі түрлі операция бар:

  • Өсім көрсеткіштері - бұл өсімге дейінгі және артқаннан кейінгі көрсеткіштерді қамтиды
  • Көрсеткіштер

15. Жою [] мен жоюдың айырмашылығы неде?

delete [] массивті шығарады және жою жадты босатады

16. Әр түрлі C ++ қатынасу спецификаторлары қандай?

Әр түрлі қол жетімділік C ++ болып табылады:

  • жеке: Қолдану аясы және бір сыныптағы қол жетімділік
  • көпшілікке: кез келген жерден қолдану аясы және қол жетімділік
  • қорғалған: Қолдану аясы және бір сыныптағы және балалар класындағы қатынас

17. Дос функциясы дегеніміз не?

Дос функциясы - бұл көмектесетін мүше емес функция жеке және қорғалған деректерге қол жеткізу. Бұл функция класс құрамына кірмейді, бірақ ол жеке деректерге қол жеткізуі үшін сынып ішінде жариялануы керек. Әдетте, мүшелікке жатпайтын функциялар жеке деректерге қол жеткізе алмайды, бірақ мұны қажет ететін жағдайлар туындайды. Бұл жағдайда дос функциясы пайдалы болады.

18. Виртуалды функция дегеніміз не?

Виртуалды функция - бұл туынды сыныпта іске асыруды қайта анықтауға көмектесетін мүшелік функция. Негізгі және туынды класта бірдей аттас екі функция болған кезде, негізгі класс функциясы виртуалды кілт сөзімен жарияланады. Демек, екі сынып та бірдей орындалатын функция атауына ие болуы мүмкін. Жұмыс уақыты кезінде ол қандай функцияны шақыратынын объект сілтегішіне сүйене отырып анықтайды.

19. Деструктор дегеніміз не?

Деструктор объект шеңберінен шыққаннан кейін ресурстарды жояды. Оның атауы сынып атауымен бірдей және '~' тильдемен ұсынылған. Оның қайтару мәні немесе аргументтері жоқ.

20. Толып кету қателігі дегеніміз не?

Толып кету қателігі - бұл нақты қол жетімді кеңістікке қарағанда көбірек орын қажет болған кезде пайда болатын Арифметикалық қате түрі.

21. Шамадан тыс жүктеме дегеніміз не?

Шамадан тыс жүктеу бір объектінің немесе функцияның атауы бірдей болғанымен, орындалуы басқа болған кезде пайда болады. Шамадан тыс жүктеудің 2 түрі бар: функцияны шамадан тыс жүктеу және оператордың шамадан тыс жүктелуі.

22. Функцияны жоққа шығару дегеніміз не?

Функцияны жоққа шығару - бұл туынды класс базалық класта болатын бірдей функцияның басқа орындалуын қамтамасыз ететін процесс. Туынды класс функциясы негізгі класс функциясын жоққа шығарады.

23. Виртуалды мұра дегеніміз не?

Виртуалды мұрагерлік - бұл иерархияның басқа кластарында болғанымен, біз негізгі класс объектісінің тек бір данасын жасай алатын әдіс. Бұл негізінен бірнеше мұрагерлікте пайдалы.

24. Конструктор дегеніміз не?

Конструктор сынып ішінде қолдануға болатын жаңа объектілерді немесе мәндерді құруға және инициализациялауға көмектеседі. Конструктордың аты сыныптың атымен бірдей.

25. Көрсеткіш дегеніміз не?

Көрсеткіш - бұл басқа айнымалының адресін сақтайтын айнымалы. Оны int немесе char т.с.с. кез келген деректер типінің айнымалыларын көрсету үшін пайдалануға болады

26. Көлемді анықтау операторы дегеніміз не?

Ауқымды шешу операторы сыныптан тыс мүше функцияны анықтауға мүмкіндік береді. Ол ұсынылған ::

27. Таза виртуалды функция дегеніміз не?

Таза виртуалды функция - бұл қандай-да бір анықтаманы қамтымайтын виртуалды функцияның бір түрі. Ол 0 мәнімен жарияланады.

virtual void function_name()=0;

28. Құрылым мен кластың айырмашылығы неде?

құрылымысынып
Құрылым дегеніміз - әр түрлі типтегі мәндерді сақтайтын пайдаланушы анықтаған мәліметтер типіКласс - бұл пайдаланушылар анықтайтын мәліметтер типтері, оның құрамына мүшелер мен функциялар кіреді
Айнымалылар стек жадында сақталадыАйнымалылар үйінді жадында сақталады
Біз айнымалыларды инициализациялай алмаймызБіз айнымалыларды тікелей инициализациялай аламыз
Айнымалының әдепкі қатынас спецификаторы жалпыға қол жетімдіАйнымалының әдепкі қатынас спецификаторы жеке болып табылады
Struct кілт сөзін қолданадыСыныптың кілт сөзін қолданады
Мұрагерлікті қолдамайдыМұрагерлікті қолдайды
Құрылым типі мәндік типке жатадыСынып типі - анықтамалық тип.

29. Виртуалды деструктор дегеніміз не?

Виртуалды деструктор базалық кластан алынған сынып объектілерін жою үшін қолданылады. Бізде виртуалды деструкторлар болуы мүмкін, бірақ конструкторлар емес. Виртуалды деструктор тілдің (~) алдында бейнеленген virtual кілт сөз.

30. Hello world-ті басып шығару үшін C ++ бағдарламасын жазыңыз

#include <iostream>

using namespace std;

int main()
{
    cout<<"Hello World";

    return 0;
}

31. Жолды енгізу және оның ұзындығын табу үшін C ++ программасын жаз

#include<iostream>
#include<conio.h>
#include<string.h>

using namespace std;

int main()
{
    char s[20];
    int length;
    cout<< "Enter a string: " <<endl;
    cin>>s;
    length = strlen(s);
    cout<<"The length of the string is: " <<length;
    return 0;
}
Enter a string:                                                                                                                               
tutorial                                                                                                                                      
The length of the string is: 8

32. Бұл қандай көрсеткіш?

this көрсеткіш - ағымдағы айнымалының немесе объектінің адресін ұстайтын айнымалы.

33. Функцияны шамадан тыс жүктеу мен оператордың шамадан тыс жүктелуінің айырмашылығы неде?

Функцияны шамадан тыс жүктеу - бұл бірдей функция әртүрлі аргументтердің типіне және санына ие, бірақ бірдей функцияның атына ие болатын әдіс, ал оператордың шамадан тыс жүктелуі басқа орындалуы немесе функционалдығы бар операторды пайдаланады.

34. С ++ тіліндегі статикалық мүше дегеніміз не?

Статикалық мүше статикалық кілт сөзін және жадыны бөледі тек бір рет. Біз статикалық мүше функциясын ретінде жариялай алмаймыз виртуалды және бұл көрсеткішті қамтуы мүмкін емес.

35. Анықтамалық айнымалы дегеніміз не?

Анықтамалық айнымалы бастапқы айнымалының мәнін өзгертуге немесе өзгертуге көмектеседі. Ол бастапқы айнымалымен бірдей жадты бөліседі.

36. Көшірме конструктор дегеніміз не?

A көшірме конструкторы дегеніміз - сол кластағы басқа объектіні пайдаланып объектіні инициализациялайтын мүшелік функция.

37. C ++ String-ті қарапайым мәліметтер типі ретінде қолдай ма?

Жоқ, C ++ String-ті қарабайыр ретінде қолдамайды деректер түрі.

38. Алмаз проблемасы дегеніміз не және ол қай жерде пайда болады?

Гауһар проблемасы бірнеше мұрагерлікте кездеседі, егер ол бірнеше мұрагерлік пен иерархиялық мұрагерлікті қолдану арқылы будандастырылған мұрагерлікті қолдай алмаса.

39. Кірістірілген функция дегеніміз не?

Кірістірілген функция - бұл компилятор функцияны шақырған кезде ғана құрастыратын функция. Функция кірістірілген кілт сөзімен жалғасады.

40. Ұшпалы кілт сөзінің мағынасы неде?

Құбылмалы кілт сөз айнымалыны сыртынан өзгертуге болатынын компиляторға бағыттау арқылы компиляторды оңтайландырудан аулақ болады.

41. Мән бойынша өтуді анықтаңыз және сілтеме бойынша өтіңіз

Мән арқылы өту мәнді функцияға параметр ретінде беруді білдіреді, демек бастапқы айнымалыға әсер етпейді, ал сілтеме арқылы өту дегеніміз біз айнымалыға сілтеме жасаймыз, осылайша бастапқы айнымалы мәнді өзгертеміз.

42. Автоматты кілт сөз дегеніміз не?

Автоматты кілт сөз айнымалылар автоматты түрде жасалатын жергілікті айнымалыларға сілтеме жасайды. Бұл айнымалылар стек жадында сақталады.

43. С ++ тіліндегі цикл түрлері қандай?

Төменде әртүрлі цикл түрлері келтірілген:

  • while цикл
  • цикл үшін
  • do-while циклы

44. Абстрактілі класс дегеніміз не?

Абстрактілі класс дегеніміз - бұл кем дегенде бір виртуалды функцияны қамтитын, онда тек функция декларациясын қамтитын және функцияның анықтамасын қамтымайтын класс.

45. Әдепкі конструктор дегеніміз не?

Әдепкі конструктор - бұл құрастырушы автоматты түрде құратын және ешқандай аргументтері жоқ конструктор.