Топ 45 C ++ въпроси за интервю за 2021 г.

По-долу са често срещаните въпроси за интервю за C ++, които обхващат основни въпроси за интервю за c ++, както и разширени въпроси за интервю за c ++. Този урок също обхваща въпросите за техническо интервю за C ++ и въпроси за интервю за C ++ за опитни, които ще ви помогнат да се подготвите за интервюта.

Съдържание

1. Какво е C ++?

C ++ е надмножество на език за програмиране C, който поддържа както процедурен, така и обектно-ориентиран език за програмиране.

2. Какви са предимствата на C ++?

  • Преносим: Може да работи на всяка платформа
  • Обектно-ориентиран език за програмиране: Поддържа класове, обекти, полиморфизъм, претоварване, наследяване и др
  • Скриване на данни: защитава данните от нашественици
  • Предаване на съобщение: Улеснява комуникацията между обектите

3. Какви са разликите между C и C ++?

CC + +
Разработено от Денис РичиРазработено от Bjarne Stroustrup
Структуриран език за програмиранеПоддържа както структуриран, така и обектно-ориентиран език за програмиране
Това е подмножество на C ++Това е супермножество на C
Не поддържа скриване на данниПоддържа скриване на данни
Не поддържа претоварване на функции или претоварване на оператораПоддържа както претоварване на функции, така и на оператора
Не поддържа референтни променливиПоддържа референтни променливи
Използва scanf () и printf () като стандартен вход и изходИзползва cin и cout като стандартен вход и изход
Не може да изпълнява функции в структуратаМоже да реализира функции в структурата

4. Какво е клас?

Един клас дефинира структура на данните. С други думи, той също представлява потребителски дефиниран тип данни който е посочен с помощта на ключовата дума class. Съдържа функции и членове до който можем да осъществим достъп, използвайки обекта или екземпляра на клас. Например, можем да имаме клас на служител, който има EmpName, EmpId като членове и getName () и setName () като функции. Можем да създадем множество екземпляри за един клас.

5. Какво е обект?

Обектът е екземпляр на клас, който има състояние и поведение. Можем да използваме обекти, за да функции за достъп и членове на клас. Винаги, когато създаваме обект, той разпределя паметта или място за съхранение в зависимост от това как го създаваме.

6. Какви са различните характеристики или концепции на ООП?

По-долу са описани характеристиките или концепциите на ООП:

  • клас
  • Обект
  • наследяване
  • Капсулирането
  • абстракция
  • Обвързване на данни
  • полиморфизъм

7. Какви са различните типове данни в C ++?

По-долу са различните типове данни в C ++:

  • Предварително дефинирани типове данни: int, char, float и double
  • Потребителски дефинирани типове данни: Масиви, указатели, низове и структури

8. Какви са различните видове класове за съхранение в C ++?

Различните видове класове за съхранение са:

  • автоматичен
  • Регистрация
  • Статичен
  • Външен
  • непостоянен

9. Какви са жетоните в C ++?

Токенът е малка част от програмата. По-долу са различните видове токени, налични в C ++:

  • Strings
  • Идентификатори
  • Ключови думи
  • константи
  • Операторите

10. Има ли C ++ автоматично събиране на боклука?

Не, C ++ не поддържа автоматично събиране на боклука.

11. Какви са различните видове полиморфизъм в C ++?

Има 2 вида полиморфизъм:

  • Полиморфизъм по време на компилация: Нарича се още статичен полиморфизъм, при който повикването към функция се определя по време на компилиране
  • Полиморфизъм по време на изпълнение: Нарича се още динамичен полиморфизъм, при който призивът за функция се определя по време на изпълнение.

12. Как се изпълнява късно свързване в C ++?

Използване на Virtual таблици

13. Какво е пространство от имена в C ++?

Пространството от имена е парче код, което използваме, за да премахнем конфликта на имена и неяснотата в имената на променливи. Това е полезно, когато имаме едно и също име на променлива за различни функции. Използвайки пространството от имена, можем да премахнем тази неяснота. Можем да определим пространството от имена по-долу:

namespace name {
//body
}

Можем да получим достъп до името на променливата, като използваме името на пространството от имена по-долу:

namespace_name :: variable_name;

14. Какви са различните операции, разрешени върху указатели?

Има 2 различни операции, които указателите поддържат:

  • Инкрементни указатели - Това съдържа указатели за предварително увеличение и след увеличаване
  • Указатели за намаляване

15. Каква е разликата между delete [] и delete?

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. Каква е разликата между структура и клас?

структураклас
Структурата е дефиниран от потребителя тип данни, който съдържа стойности на различни типове данниКласът е дефиниран от потребителя тип данни, който съдържа членове и функции
Променливите се съхраняват в паметта на стекаПроменливите се съхраняват в паметта на купчината
Не можем да инициализираме променливи директноМожем да инициализираме променливите директно
Спецификаторът за достъп по подразбиране на променлива е публиченСпецификаторът за достъп по подразбиране на променлива е private
Използва ключовата дума structИзползва ключовата дума за клас
Не поддържа наследяванеПоддържа наследяване
Типът на структурата е от стойностТипът на класа е от референтен тип.

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 ++?

Статичният член е представен с помощта на ключовата дума static и разпределя паметта само веднъж. Не можем да декларираме статична членска функция като виртуален и не може да съдържа този указател.

35. Какво е референтна променлива?

Референтната променлива помага да се актуализира или промени стойността на оригиналната променлива. Той споделя същата памет като оригиналната променлива.

36. Какво е конструктор на копия?

A конструктор за копиране е функция член, която инициализира обекта, използвайки друг обект от същия клас.

37. Поддържа ли C ++ String като примитивен тип данни?

Не, C ++ не поддържа String като примитив тип данни.

38. Какво представлява проблемът с диамантите и къде се среща?

Проблем с диамантите възниква при множествено наследяване, където той не е в състояние да поддържа хибридно наследяване, използвайки множествено наследяване и йерархично наследяване.

39. Какво е вградена функция?

Вградената функция е функция, при която компилаторът се компилира само по време на извикване на функцията. Функцията продължава с ключовата дума inline.

40. Каква е ползата от променлива ключова дума?

Волатилна ключова дума избягва оптимизацията на компилатора, като насочва компилатора, че променливата може да бъде променена външно.

41. Определете преминаване по стойност и предаване чрез препратка

Pass by value означава предаване на стойност като параметър на функцията и следователно не засяга оригиналната променлива, докато pass by reference означава, че ние предаваме референцията на променливата, като по този начин променяме стойността на оригиналната променлива.

42. Какво е автоматична ключова дума?

Автоматичната ключова дума се отнася до локални променливи по подразбиране, където променливите се създават автоматично. Тези променливи се съхраняват в паметта на стека.

43. Какви са различните видове цикли в C ++?

По-долу са различните видове цикли:

  • докато цикъл
  • за цикъл
  • do-while цикъл

44. Какво представлява абстрактният клас?

Абстрактният клас е клас, който съдържа поне една чиста виртуална функция, където съдържа само декларацията за функция и не съдържа дефиниция на функция.

45. Какво е конструктор по подразбиране?

Конструктор по подразбиране е конструктор, който компилаторът създава автоматично и няма никакви аргументи.

 

Translate »