Лепшыя 45 пытанняў інтэрв'ю C ++ на 2021 год


Ніжэй прыведзены агульныя пытанні інтэрв'ю на C ++, якія ахопліваюць асноўныя пытанні інтэрв'ю на C ++, а таксама пашыраныя пытанні інтэрв'ю на C ++. Гэты падручнік таксама ахоплівае пытанні тэхнічнага інтэрв'ю C ++ і пытанні інтэрв'ю C ++ для вопытных, якія дапамогуць вам падрыхтавацца да сумоўя.

Змест

1. Што такое C ++?

C ++ - гэта набор моў праграмавання C, які падтрымлівае як працэдурную, так і аб'ектна-арыентаваную мову праграмавання.

2. У чым перавагі C ++?

  • Партатыўны: Ён можа працаваць на любой платформе
  • Аб'ектна-арыентаваная мова праграмавання: падтрымлівае класы, аб'екты, палімарфізм, перагрузку, наследаванне і г.д.
  • Схаванне дадзеных: абараняе дадзеныя ад захопнікаў
  • Перадача паведамленняў: палягчае сувязь паміж аб'ектамі

3. У чым розніца паміж C і C ++?

CC + +
Распрацавана Дэнісам РычыРаспрацавана Bjarne Stroustrup
Структураваная мова праграмаванняПадтрымлівае як структураваную, так і аб'ектна-арыентаваную мову праграмавання
Гэта падмноства C ++Гэта надмноства З
Не падтрымлівае ўтойванне дадзеныхПадтрымлівае ўтойванне дадзеных
Не падтрымлівае перагрузку функцый альбо перагрузку аператараПадтрымлівае перагрузку функцый і аператара
Не падтрымлівае спасылачныя зменныяПадтрымлівае спасылачныя зменныя
Выкарыстоўвае scanf () і printf () у якасці стандартнага ўваходу і вывадуВыкарыстоўвае cin і cout у якасці стандартнага ўваходу і вываду
Немагчыма рэалізаваць функцыі ў структурыМожа рэалізоўваць функцыі ў структуры

4. Што такое клас?

Клас вызначае структура дадзеных. Іншымі словамі, ён таксама ўяўляе вызначаны карыстальнікам тып дадзеных гэта паказана з дапамогай ключавога слова class. Ён утрымлівае функцыі і члены што мы можам атрымаць доступ з дапамогай аб'екта альбо асобніка класа. Напрыклад, мы можам мець клас Employee, які мае ў якасці членаў EmpName, EmpId і функцыі getName () і setName (). Мы можам стварыць некалькі асобнікаў для аднаго класа.

5. Што такое прадмет?

Аб'ект - гэта асобнік класа, які мае стан і паводзіны. Мы можам выкарыстоўваць аб'екты для функцыі доступу і члены класа. Кожны раз, калі мы ствараем аб'ект, ён выдзяляе памяць альбо месца для захоўвання ў залежнасці ад таго, як мы яго ствараем.

6. Якія розныя асаблівасці альбо канцэпцыі ООП?

Ніжэй прыведзены асаблівасці або канцэпцыі ООП:

  • Клас
  • Аб'ект
  • ўспадкоўванне
  • Інкапсуляцыя
  • Абстракцыя
  • Пераплёт дадзеных
  • Паліморфізм

7. Якія розныя тыпы дадзеных у C ++?

Ніжэй прыведзены розныя тыпы дадзеных у C ++:

  • Загадзя вызначаны тыпы дадзеных: int, char, float і double
  • Тыпы дадзеных, вызначаныя карыстальнікам: Масівы, паказальнікі, радкі і структуры

8. Якія розныя тыпы класаў захоўвання ў C ++?

Розныя тыпы класаў захоўвання:

  • аўтаматычны
  • Рэгістрацыя
  • Статычны
  • Знешні
  • Зменлівы

9. Якія лексемы ў C ++?

Токен - гэта невялікая частка праграмы. Ніжэй прыведзены розныя тыпы маркераў, даступныя ў C ++:

  • Струны
  • Ідэнтыфікатары
  • ключавыя словы
  • канстанты
  • Аператары

10. Ці мае C ++ аўтаматычны збор смецця?

Не, C ++ не падтрымлівае аўтаматычны збор смецця.

11. Якія розныя тыпы палімарфізму ў C ++?

Існуе 2 віды палімарфізму:

  • Палімарфізм падчас кампіляцыі: Таксама званы статычным палімарфізмам, калі выклік функцыі вызначаецца падчас кампіляцыі
  • Палімарфізм падчас выканання: Таксама званы дынамічным палімарфізмам, калі выклік функцыі вызначаецца падчас выканання.

12. Як рэалізавана Late Binding у C ++?

Выкарыстанне віртуальных табліц

13. Што такое прастора імёнаў у C ++?

Прастора імёнаў - гэта фрагмент кода, які мы выкарыстоўваем для выдалення канфлікту найменняў і неадназначнасці імёнаў зменных. Гэта карысна, калі ў нас адно і тое ж імя зменнай для розных функцый. Выкарыстоўваючы прастору імёнаў, мы можам прыбраць гэтую неадназначнасць. Мы можам вызначыць прастору імёнаў, як паказана ніжэй:

namespace name {
//body
}

Мы можам атрымаць доступ да імя зменнай, выкарыстоўваючы імя прасторы імёнаў, як паказана ніжэй:

namespace_name :: variable_name;

14. Якія розныя аперацыі дазволены над паказальнікамі?

Указальнікі падтрымліваюць 2 розныя аперацыі:

  • Паказальнікі павелічэння - утрымлівае паказальнікі папярэдняга павелічэння і павелічэння
  • Паказальнікі памяншэння

15. У чым розніца паміж выдаленнем [] і выдаленнем?

delete [] вызваляе масіў, а delete - памяць

16. Якія розныя спецыфікатары доступу C ++?

розны спецыфікатары доступу ў C ++ з'яўляюцца:

  • private: Аб'ём і доступ у адным класе
  • грамадскасць: Сфера выкарыстання і доступ з любога месца
  • protected: Аб'ём і доступ у адным класе і даччыным класе

17. Што такое функцыя сябра?

Функцыя "сябар" - гэта функцыя, якая не з'яўляецца членам і якая дапамагае доступ да прыватных і абароненых дадзеных. Гэтая функцыя не з'яўляецца часткай класа, але павінна быць аб'яўлена ў класе, каб яна магла атрымаць доступ да прыватных дадзеных. Як правіла, функцыі, якія не з'яўляюцца членамі, не могуць атрымаць доступ да прыватных дадзеных, але бываюць сітуацыі, калі нам гэта трэба зрабіць. У гэтым выпадку функцыя сябра будзе карыснай.

18. Што такое віртуальная функцыя?

Віртуальная функцыя - гэта функцыя-член, якая дапамагае перавызначыць рэалізацыю ў вытворным класе. Калі ў базавым і вытворным класе прысутнічаюць дзве аднолькавыя функцыі, функцыя базавага класа аб'яўляецца з ключавым словам virtual. Такім чынам, абодва класы могуць мець адно і тое ж імя функцыі з рознай рэалізацыяй. Падчас выканання ён вызначае, якую функцыю выклікаць, абапіраючыся на паказальнік аб'екта, на які ён паказвае.

19. Што такое дэструктар?

Дэструктар выдаляе рэсурсы, калі аб'ект выходзіць з-за межы прымянення. Ён мае тое самае імя, што і імя класа, і прадстаўлены тыльдай '~'. У ім няма ніякага значэння і аргументаў, якія вяртаюцца.

20. Што такое памылка перапаўнення?

Памылка перапаўнення - гэта тып арыфметычнай памылкі, які ўзнікае, калі патрабуецца больш месца, чым рэальна даступная прастора.

21. Што такое перагрузка?

Перагрузка адбываецца, калі адзін і той жа аб'ект або функцыя мае аднолькавае імя, але іншая рэалізацыя. Існуе 2 тыпу перагрузкі: перагрузка функцый і перагрузка аператара.

22. Што такое перавызначэнне функцыі?

Перавызначэнне функцый - гэта працэс, пры якім вытворны клас забяспечвае іншую рэалізацыю той самай функцыі, якая прысутнічае ў базавым класе. Выведзеная функцыя класа перавызначае функцыю базавага класа.

23. Што такое віртуальнае наследаванне?

Віртуальнае наследаванне - гэта метад, пры якім мы можам стварыць толькі адну копію аб'екта базавага класа, хоць ён прысутнічае ў іншых класах іерархіі. Гэта ў асноўным карысна пры множным наследаванні.

24. Што такое канструктар?

Канструктар дапамагае ствараць і ініцыялізаваць новыя аб'екты ці значэнні, якія мы можам выкарыстоўваць у класе. Канструктар мае тое ж імя, што і імя класа.

25. Што такое паказальнік?

Паказальнік - гэта зменная, якая захоўвае адрас іншай зменнай. Ён можа выкарыстоўвацца для ўказання на зменныя любога тыпу дадзеных, такія як int, char і г.д.

26. Што такое аператар дазволу размаху?

Аператар дазволу вобласці дазваляе вызначыць функцыю члена па-за класам. Ён прадстаўлены ::

27. Што такое чыстая віртуальная функцыя?

Чыста віртуальная функцыя - гэта тып віртуальнай функцыі, які не ўтрымлівае ніякага вызначэння функцыі. Ён аб'яўляецца са значэннем 0.

virtual void function_name()=0;

28. У чым розніца паміж структурай і класам?

структураклас
Структура - гэта вызначаны карыстальнікам тып дадзеных, які ўтрымлівае значэнні розных тыпаў дадзеныхКлас - гэта вызначаныя карыстальнікам тыпы дадзеных, якія ўтрымліваюць члены і функцыі
Зменныя захоўваюцца ў памяці стэкаЗменныя захоўваюцца ў памяці кучы
Мы не можам непасрэдна ініцыялізаваць зменныяМы можам ініцыялізаваць зменныя непасрэдна
Спецыфікатар доступу па змаўчанні для зменнай з'яўляецца агульнадаступнымСпецыфікатар доступу па змаўчанні для зменнай з'яўляецца прыватным
Выкарыстоўвае ключавое слова structВыкарыстоўвае ключавое слова class
Не падтрымлівае спадчынуПадтрымлівае спадчыну
Тып структуры - гэта тып значэнняТып класа - эталоннага тыпу.

29. Што такое віртуальны дэструктар?

Віртуальны дэструктар выкарыстоўваецца для знішчэння аб'ектаў вытворнага класа з базавага класа. Мы можам мець віртуальныя дэструктары, але не канструктары. Віртуальны дэструктар прадстаўлены тыльдай (~) перад virtual ключавое слова.

30. Напішыце праграму на C ++ для друку Hello world

#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. Што такое статычны член у C ++?

Статычны член прадстаўлены выкарыстаннем статычнага ключавога слова і выдзяляе памяць толькі адзін раз. Мы не можам аб'явіць статычную функцыю члена як віртуальны і не можа ўтрымліваць гэты паказальнік.

35. Што такое спасылачная зменная?

Апорная зменная дапамагае абнавіць альбо змяніць значэнне зыходнай зменнай. Ён падзяляе тую ж памяць, што і зыходная зменная.

36. Што такое канструктар капіравання?

A канструктар капіравання з'яўляецца функцыяй-членам, якая ініцыялізуе аб'ект, выкарыстоўваючы іншы аб'ект таго ж класа.

37. Ці падтрымлівае C ++ радок як прымітыўны тып дадзеных?

Не, C ++ не падтрымлівае String як прымітыў тып дадзеных.

38. Што такое алмазная праблема і дзе яна ўзнікае?

Алмазная праблема ўзнікае пры множным наследаванні, дзе яна не здольная падтрымліваць гібрыднае наследаванне з выкарыстаннем множнага наследавання і іерархічнага наследавання.

39. Што такое ўбудаваная функцыя?

Убудаваная функцыя - гэта функцыя, калі кампілятар кампілюе толькі падчас выкліку функцыі. Функцыя працуе з ключавым словам inline.

40. Для чаго карыснае лятучае ключавое слова?

Лятучае ключавое слова пазбягае аптымізацыі кампілятара, накіроўваючы кампілятар, што зменную можна змяніць звонку.

41. Вызначце перадачу па значэнні і перадачу па спасылцы

Перадаць значэнне азначае перадачу значэння ў якасці параметра функцыі і, такім чынам, не ўплывае на зыходную зменную, тады як перадача па спасылцы азначае, што мы перадаем спасылку на зменную, змяняючы такім чынам зыходнае значэнне зменнай.

42. Што такое аўтаматычнае ключавое слова?

Ключавое слова auto па змаўчанні адносіцца да лакальных зменных, дзе зменныя ствараюцца аўтаматычна. Гэтыя зменныя захоўваюцца ў памяці стэка.

43. Якія розныя тыпы завес у C ++?

Ніжэй прадстаўлены розныя тыпы завес:

  • у той час як цыкл
  • для завесы
  • цыкл "зрабіць-падчас"

44. Што такое абстрактны клас?

Абстрактны клас - гэта клас, які змяшчае па меншай меры адну чыстую віртуальную функцыю, дзе ён утрымлівае толькі аб'яву функцыі і не ўтрымлівае вызначэння функцыі.

45. Што такое канструктар па змаўчанні?

Канструктар па змаўчанні - гэта канструктар, які кампілятар стварае аўтаматычна і не мае аргументаў.