logo

C++ intervijas jautājumi un atbildes (2024)

C++ – obligāti zināmā un visu laiku iecienītākā kodētāju programmēšanas valoda. Tas joprojām ir aktuāls, kā tas bija 80. gadu vidū. Kā vispārējas nozīmes un objektorientēta programmēšanas valoda tiek plaši izmantota galvenokārt katru reizi kodēšanas laikā. Rezultātā dažas darba lomas prasa, lai indivīdi brīvi pārvalda C++. To izmanto labākie IT uzņēmumi, piemēram, Evernote, LinkedIn, Microsoft, Opera, NASA , un Meta tā uzticamības, veiktspējas un plašā iestatījumu klāsta dēļ, kuros to var izmantot. Tātad, lai iekļūtu šajos uzņēmumos, jums tie ir rūpīgi jāizpēta 50 populārākie C++ intervijas jautājumi kas var likt jums šķist eksperts darbā iekārtotāju priekšā.

50 populārākie C++ interviju jautājumi pirmkursniekiem un pieredzējušiem (2022)

Lai jūs būtu gatavs intervijai, esam atnesuši 50 populārākie C++ intervijas jautājumi iesācējs, vidējs un pieredzējis kas jums noteikti ir jāiziet, lai iegūtu labāko starptautisko korporāciju vietu.



C++ intervijas jautājumi pirmkursniekiem

1. Kas ir C++? Kādas ir C++ priekšrocības?

C++ ir objektorientēta programmēšanas valoda, kas tika ieviesta, lai pārvarētu jurisdikcijas, kurās trūka C. Ar objektu orientētu mēs domājam, ka tas darbojas ar jēdzienu polimorfisms , mantojums , abstrakcija , iekapsulēšana , objekts un klase .

C++ priekšrocības :

  1. C++ ir OOP valoda, kas nozīmē, ka dati tiek uzskatīti par objektiem.
  2. C++ ir vairāku paradigmu valoda; Vienkārši izsakoties, tas nozīmē, ka mēs varam ieprogrammēt programmas loģiku, struktūru un procedūru.
  3. Atmiņas pārvaldība ir galvenā C++ funkcija, jo tā nodrošina dinamisku atmiņas piešķiršanu
  4. Tā ir vidēja līmeņa programmēšanas valoda, kas nozīmē, ka tā var izstrādāt spēles, darbvirsmas lietojumprogrammas, draiverus un kodolus

Lai lasītu vairāk, skatiet rakstu - Kādas ir C++ priekšrocības?



2. Kādi ir dažādie C++ datu tipi?

datu tipi C++

Dažādu veidu datu veidi programmā C++

Lai iegūtu papildinformāciju, skatiet ' std' ir pazīstams arī kā standarta vai to var interpretēt kā nosaukumvietu. Komanda izmantojot namespace std informē kompilatoru, lai tas pievienotu visu zem std nosaukumvieta un ieaudzināt tos globālā nosaukumtelpa . Šī globālās nosaukumvietas ieviešana mums sniedz priekšrocības cout un ēšana neizmantojot std::_operators_.

Lai iegūtu papildinformāciju, skatiet nosaukumvieta un std .



4. Kas ir atsauces C++?

Kad mainīgais tiek aprakstīts kā atsauce, tas kļūst par jau esošā mainīgā aizstājvārdu. Vienkārši izsakoties, atsauces mainīgais ir cits nosaukts esoša mainīgā mainīgais, paturot prātā, ka atsauces mainīgajā veiktās izmaiņas tiks atspoguļotas jau esošajā mainīgajā. Pirms atsauces mainīgā ir a '&' simbols.

Sintakse:

int GFG = 10;  // reference variable int& ref = GFG;>

Lai iegūtu papildinformāciju, skatiet atsauces C++ valodā

5. Ko jūs domājat ar vārdiem Call by Value un Call by Reference?

Šajā programmēšanas valodā, lai izsauktu funkciju, mums ir 2 metodes: Zvanīt pēc vērtības un Zvanīt pēc uzziņas

Zvanīt pēc vērtības

Zvanīt pēc uzziņas

Tiek nodota mainīgā kopija.Pats mainīgais tiek nodots fundamentāli.
Funkcijas izsaukšana, nosūtot vērtības, kopējot mainīgos.Funkcijas izsaukšana, nosūtot nodotā ​​mainīgā adresi.
Funkcijā veiktās izmaiņas nekad netiek atspoguļotas ārpus mainīgā funkcijas. Īsāk sakot, sākotnējā vērtība nekad netiek mainīta sadaļā Call by Value.Funkcijās veiktās izmaiņas var redzēt ārpus funkcijas nokārtotajā funkcijā. Īsāk sakot, sākotnējā vērtība tiek mainīta sadaļā Call by reference.
Nodotie faktiskie un formālie parametri tiek glabāti dažādās atmiņas vietās. Tāpēc, padarot Call by Value nedaudz atmiņas, nepietiekNodotie faktiskie un formālie parametri tiek glabāti vienā atmiņas vietā. Tāpēc Call by Reference padarot mazliet efektīvāku atmiņu.

Lai iegūtu informāciju, skatiet atšķirība starp zvanu pēc vērtības un zvanu pēc atsauces

6. Definējiet marķieri programmā C++

Token ir mazākais atsevišķais programmas elements, ko saprot kompilators. Tokenā ietilpst:

  1. Atslēgvārdi – Tie satur īpašu nozīmi kompilatoram
  2. Identifikatori – Tam ir unikāla vērtība/identitāte
  3. Konstantes – Tas nekad nemaina to vērtību visā programmā
  4. Stīgas – Tas satur homogēnu datu secību
  5. Īpaši simboli – Tiem ir kāda īpaša nozīme, un tos nevar izmantot citam mērķim; piemēram: [] () {}, ; * = #
  6. Operatori – Kas veic operācijas ar operandu

Lai iegūtu papildinformāciju, skatiet Žetoni valodā C++

7. Kāda ir atšķirība starp C un C++?

C

C++

Tā ir procesuālā programmēšanas valoda. Vienkāršiem vārdiem sakot, tas neatbalsta klases un objektusTas ir gan procesuālo, gan objektorientēto programmēšanas valodu sajaukums. Vienkāršiem vārdiem sakot, tas atbalsta klases un objektus.
Tas neatbalsta tādus OOP jēdzienus kā polimorfisms, datu abstrakcija, iekapsulēšana, klases un objekti.Tā atbalsta visas datu koncepcijas
Tas neatbalsta funkciju un operatora pārslodziTas atbalsta attiecīgi funkciju un operatora pārslodzi
Tā ir uz funkcijām balstīta valodaTā ir objektu vadīta valoda

Lai iegūtu papildinformāciju, skatiet Atšķirība starp C un C++

8. Kāda ir atšķirība starp struktūru un klasi?

Struktūra

Klase

Struktūras dalībnieki pēc noklusējuma vienmēr ir publiskajā režīmāKlases dalībnieki var darboties privātā, aizsargātā un publiskā režīmā.
Struktūras ir vērtību tipa. Viņiem ir vērtība tikai atmiņā.Klases ir atsauces tipa. Tas satur atsauci uz objektu atmiņā.
Atmiņa struktūrās tiek saglabāta kā skursteņiAtmiņa klasēs tiek saglabāta kā kaudzes.

Lai iegūtu papildinformāciju, skatiet Atšķirība starp struktūru un klasi.

9. Kāda ir atšķirība starp atsauci un rādītāju?

Atsauce

sveiki pasaule ar java

Rādītājs

Atsauces vērtību nevar piešķirt no jaunaRādītāja vērtību var piešķirt no jauna
Tas nekad nevar turēt a null vērtību, jo tai ir nepieciešama esoša vērtība, lai tā kļūtu par aizstājvārduTas var turēt vai norādīt uz a null vērtību un saukt par a nullptr vai nulles rādītājs
Tas nevar darboties ar masīviemTas var strādāt ar masīviem
Lai piekļūtu klases/struktūras dalībniekiem, tas izmanto ' . 'Lai piekļūtu klases/struktūras dalībniekiem, tas izmanto ' -> '
Atsauces vietai atmiņā var viegli piekļūt vai to var izmantot tiešiRādītāja atmiņas vietai nevar viegli piekļūt, jo mums ir jāizmanto atsauce ' * '

Lai iegūtu papildinformāciju, skatiet Atšķirība starp atsauci un rādītāju

10. Kāda ir atšķirība starp funkciju pārslodzi un operatora pārslodzi?

Funkciju pārslodze

Operatora pārslodze

Būtībā tā ir funkcijas definēšana daudzos veidos tā, ka ir daudz veidu, kā to izsaukt, vai vienkāršiem vārdiem sakot, jums ir vairākas vienas un tās pašas funkcijas versijas.Būtībā tā ir prakse piešķirt īpašu nozīmi esošajai operatora nozīmei vai vienkāršā izteiksmē pārdefinēt iepriekš pārdefinēto nozīmi.
Parametrizētās funkcijas ir labs funkciju pārslodzes piemērs, jo, mainot funkcijas argumentu vai parametru, jūs to padarāt noderīgu dažādiem mērķiem.Polimorfisms ir labs piemērs operatora pārslodzei, jo piešķiršanas objektu klasi var izmantot un izsaukt dažādas klases dažādiem mērķiem

Funkciju pārslodzes piemērs:

  1. int GFG(int X, int Y);
  2. int GFG(char X, char Y);

Operatora pārslodzes piemērs:

  1. int GFG() = X() + Y();
  2. int GFG() = X() – Y();

Lai iegūtu papildinformāciju, skatiet Operatora pārslodze un Funkciju pārslodze

11. Kāda ir atšķirība starp masīvu un sarakstu?

Masīvi

Saraksti

pirmskaitļu programma java
Masīvs ir viendabīgu datu tipu blakus esošās atmiņas vietas, kas glabājas noteiktā vietā vai izmērā.Saraksti ir klasiski atsevišķi elementi, kas ir saistīti vai savienoti viens ar otru ar rādītāju palīdzību un kuriem nav fiksēta izmēra.
Masīvi pēc būtības ir statiski.Saraksti ir dinamiski
Patērē mazāk atmiņas nekā saistītie saraksti.Izmanto vairāk atmiņas, jo tajā ir jāsaglabā vērtība un rādītāja atmiņas vieta

Lai iegūtu papildinformāciju, skatiet Masīvi pret sarakstu

12. Kāda ir atšķirība starp cilpu while un do-while cilpu?

Kamēr Loop

darīt-kamēr Cilpa

Lai gan cilpa tiek saukta arī par ieejas kontrolētu cilpuDo-while cilpa tiek saukta par izejas vadības cilpu
Ja nosacījums nav izpildīts, cilpas iekšējie paziņojumi netiks izpildītiPat ja nosacījums nav izpildīts, cilpas iekšējie paziņojumi tiks izpildīti vismaz vienu reizi

Piemērs no brīža cilpas:

kamēr (stāvoklis)

{izpildāmie paziņojumi;};

Piemērs no do-while cilpas:

darīt {

izpildāmie paziņojumi;

} while(nosacījums vai izteiksme);

Lai iegūtu papildinformāciju, skatiet Atšķirība starp while un do-while cilpu

13. Apspriediet atšķirību starp prefiksu un postfiksu?

priedēklis

postfix

Tas vienkārši nozīmē operatora novietošanu operanda priekšāTas vienkārši nozīmē operatoru likt aiz operanda
Tas izpilda sevi iepriekš '; ' Tas izpilda sevi pēc tam '; '
Prefiksa ++ asociativitāte ir no labās uz kreiso pusiPostfix ++ saistība ir no kreisās uz labo pusi

Lai iegūtu papildinformāciju, skatiet Atšķirība starp prefiksu un postfiksu

14. Kāda ir atšķirība starp new un malloc()?

jauns

malloc ()

jauns ir operators, kas veic darbībumalloc ir funkcija, kas atgriež un pieņem vērtības
jauni aicina konstruktorimalloc nevar izsaukt konstruktoru
jauns ir ātrāks par malloc, jo tas ir operatorsmalloc ir lēnāks nekā jauns, jo tā ir funkcija
new atgriež precīzu datu tipumalloc atgriež spēkā neesošu*

Lai iegūtu papildinformāciju, skatiet Atšķirība starp jauno un malloc ()

15. Kāda ir atšķirība starp virtuālajām funkcijām un tīrajām virtuālajām funkcijām?

Virtuālā funkcija

Tīra virtuāla funkcija

Virtuālā funkcija ir bāzes klases locekļa funkcija, kuru var atkārtoti definēt citā atvasinātā klasē.Pure Virtual Function ir pamatklases locekļa funkcija, kas ir deklarēta tikai pamatklasē un definēta atvasinātā klasē, lai novērstu tās kļūšanu par abstraktu klasi.
Virtuālās funkcijas definīcija ir tās attiecīgajā bāzes klasē.Funkcijā Pure Virtual Function nav definīcijas, un tā tiek inicializēta ar tīru specifikāciju (= 0).
Bāzes klasei ir virtuāla funkcija, kuru var attēlot vai instancē; Vienkāršiem vārdiem sakot, tā objektu var izgatavot.Bāzes klase ar tīru virtuālo funkciju kļūst abstrakta, ko nevar attēlot vai instancē; Vienkāršiem vārdiem sakot, tas nozīmē, ka tā objektu nevar izgatavot.

Lai iegūtu papildinformāciju, skatiet Atšķirība starp virtuālajām funkcijām un tīri virtuālajām funkcijām

16. Kas ir klases un objekti C++?

Klase ir lietotāja definēts datu tips, kurā visas dalībnieku funkcijas un datu dalībnieki ir pielāgoti atbilstoši prasībām un prasībām, turklāt tiem visiem var piekļūt, izmantojot objektu . Lai deklarētu lietotāja definētu datu tipu, mēs izmantojam atslēgvārdu klasē.

Objekts ir klases un entītijas gadījums ar vērtību un stāvokli; Vienkārši izsakoties, to izmanto kā katalizatoru vai klases locekļa attēlošanai. Tajā var būt dažādi parametri vai arī tie var nebūt.

Piezīme: Klase ir projekts, kas definē funkcijas, kuras izmanto objekts.

Lai iegūtu papildinformāciju, skatiet šo Kas ir klases un objekti

17. Kas ir funkciju ignorēšana?

Ja atvasinātajā klasē tiek izmantota tāda paša nosaukuma funkcija, tādi paši argumenti vai parametri un tāds pats atgriešanas veids, kas jau ir/deklarēts bāzes klasē, to sauc par funkciju ignorēšanu. Tas ir izpildlaika polimorfisma vai vēlīnās saistīšanas piemērs, kas nozīmē, ka ignorētā funkcija tiks izpildīta izpildes laikā.

Lai iegūtu papildinformāciju, skatiet Funkciju ignorēšana programmā C++

18. Kādi ir dažādie OOP jēdzieni C++?

  • Klases : Tas ir lietotāja definēts datu tips
  • Objekti : Tas ir klases piemērs
  • Abstrakcija: Tas ir paņēmiens, kā parādīt tikai nepieciešamās detaļas
  • Iekapsulēšana: Datu iesaiņošana vienā vienībā
  • Mantojums: Klases spēja iegūt īpašības un raksturlielumus no citas klases
  • Polimorfisms: Polimorfisms ir pazīstams kā daudzas vienas un tās pašas lietas formas

Lai iegūtu papildinformāciju, skatiet Dažādas OOP koncepcijas C++ valodā

19. Izskaidrojiet mantojumu

Klases spēja vai spēja iegūt īpašības un raksturlielumus no citas klases ir pazīstama kā mantojums. Vienkārši izsakoties, tā ir sistēma vai paņēmiens esošo klašu atkārtotai izmantošanai un paplašināšanai, tās nemodificējot.

Lai iegūtu papildinformāciju, skatiet Mantojums

20. Kad vajadzētu izmantot vairākkārtēju mantojumu?

Vairāki mantojumi nozīmē, ka atvasināta klase var mantot divas vai vairākas pamatklases/vecākklases. Tas ir noderīgi, ja atvasinātajai klasei ir jāapvieno daudzi atribūti/līgumi un no šiem atribūtiem/līgumiem ir jāmanto daļa vai visa ieviešana. Lai ņemtu piemēru no reālās dzīves, apsveriet savus vecākus, kur vecāks A ir jūsu tētis, vecāks B ir jūsu MAMMA un bērns C ir jūs.

vairāki mantojumi

Vairāki mantojumi

Lai iegūtu papildinformāciju, skatiet Daudzkārtēja mantošana .

21. Kas ir virtuālais mantojums?

Virtuālā mantošana ir paņēmiens, kas nodrošina, ka mazbērnu klases manto tikai vienu bāzes klases dalībnieku mainīgo kopiju. Citiem vārdiem sakot, virtuālo mantojumu izmanto, ja mēs saskaramies ar vairāku mantojumu situāciju, bet vēlamies novērst vairāku vienas klases gadījumu parādīšanos mantojuma hierarhijā.

java numurs uz virkni

22. Kas ir polimorfisms C++ valodā?

Polimorfisms ir pazīstams kā daudzas vienas un tās pašas lietas formas. Vienkārši izsakoties, mēs varam teikt, ka polimorfisms ir spēja parādīt dalībnieka funkciju vairākās formās atkarībā no objekta veida, kas tos izsauc.

Citiem vārdiem sakot, mēs varam arī teikt, ka vīrietis var būt kādam darbinieks, kādam dēls, kādam tēvs un kādam vīrs; šādi var projicēt polimorfismu reālajā dzīvē.

Ir 2 polimorfisma veidi:

  1. Sastādīt laika polimorfismu
    • Funkciju pārslodze
    • Operatora pārslodze
  2. Darbības laika polimorfisms
    • Funkciju ignorēšana
    • Virtuālā funkcija

Lai uzzinātu vairāk par to, skatiet Polimorfisms

23. Kādi ir dažādi C++ polimorfisma veidi?

Ir 2 veidu polimorfisms

Kompilējiet laika polimorfismu vai statisko saistīšanu

Šāda veida polimorfisms tiek sasniegts programmas kompilēšanas laikā, kā rezultātā tā kļūst nedaudz ātrāka nekā izpildes laiks. Arī Mantojums tajā nav iesaistīts. Tas sastāv no 2 papildu metodes :

Funkciju pārslodze: Ja ir vairākas funkcijas ar tādu pašu nosaukumu, bet atšķirīgi parametri, to sauc par funkciju pārslodzi.

C++
// same name different arguments int GFG() {} int GFG(int a) {} float GFG(double a) {} int GFG(int a, double b) {}>


Operatora pārslodze: Būtībā tā ir prakse piešķirt īpašu nozīmi esošajai operatora nozīmei vai vienkāršā izteiksmē pārdefinēt iepriekš pārdefinēto nozīmi.

C++
class GFG {  // private and other modes  statements public returnType  operator symbol(arguments){ statements } statements };>

Izpildes laika polimorfisms vai vēlīna saistīšanās

Izpildes laika polimorfisms notiek, kad funkcijas tiek izsauktas izpildes laikā.

Funkciju ignorēšana: Funkciju ignorēšana notiek, ja bāzes klases dalībnieka funkcija tiek atkārtoti definēta atvasinātā klasē ar tādiem pašiem argumentiem un atgriešanas veidu.

C++
// C++ program to demonstrate // Function overriding #include  using namespace std; class GFG { public:  virtual void display()  {  cout << 'Function of base class' << endl;  } }; class derived_GFG : public GFG { public:  void display()  {  cout << 'Function of derived class' << endl;  } }; int main() {  derived_GFG dg;  dg.display();  return 0; }>

Izvade:

Function of derived class>

Lai iegūtu papildinformāciju, skatiet Dažādi polimorfisma veidi

24. Salīdziniet kompilēšanas laika polimorfismu un izpildlaika polimorfismu

Kompilēšanas laika polimorfisms

Izpildes laika polimorfisms

To sauc arī par statisko iesiešanu un agrīno iesiešanu.To sauc arī par dinamisko iesiešanu un vēlo iesiešanu.
Tas ir ātrs, jo izpilde ir zināma kompilēšanas laikā.Tas ir lēns, salīdzinot ar kompilēšanas laiku, jo izpilde ir zināma izpildlaikā.
To panāk ar funkciju pārslodzi un operatora pārslodzi.Tas tiek panākts, izmantojot virtuālās funkcijas un funkciju ignorēšanu.

Lai iegūtu papildinformāciju, skatiet Kompilēšanas laika polimorfisms un izpildlaika polimorfisms

25. Izskaidrojiet konstruktoru C++ valodā.

Konstruktors ir klases locekļa funkcijas īpašs veids, kura nosaukums ir tāds pats kā klasei, kura to izsauc un inicializē vērtību klases objektam.

Ir 3 veidu konstruktori:

A. Noklusējuma konstruktors: Tas ir visvienkāršākais konstruktora veids, kas nepieņem argumentus vai parametrus. Pat ja tas netiek izsaukts, kompilators to izsauc automātiski, kad tiek izveidots objekts.

Piemērs:

C++
class Class_name { public:  Class_name() { cout << 'I am a default constructor'; } };>


B. Parametrizēts konstruktors: Tas ir konstruktora veids, kas pieņem argumentus vai parametrus. Tas ir skaidri jāizsauc, argumentos nododot vērtības, jo šie argumenti palīdz inicializēt objektu, kad tas tiek izveidots. Tam ir arī tāds pats nosaukums kā klasei.

To izmanto arī, lai pārslogotu konstruktorus.

Piemērs:

C++
// CPP program to demonstrate // parameterized constructors #include  using namespace std; class GFG { private:  int x, y; public:  // Parameterized Constructor  GFG(int x1, int y1)  {  x = x1;  y = y1;  }  int getX() { return x; }  int getY() { return y; } }; int main() {  // Constructor called  GFG G(10, 15);  // Access values assigned by constructor  cout << 'G.x = ' << G.getX() << ', G.y = ' << G.getY();  return 0; }>

Izvade

G.x = 10, G.y = 15>

C. Kopēšanas konstruktors: Kopiju konstruktors ir biedra funkcija, kas inicializē objektu, izmantojot citu tās pašas klases objektu. Arī kopēšanas konstruktors kā argumentu izmanto atsauci uz tās pašas klases objektu.

Piemērs:

C++
Sample(Sample& t) { id = t.id; }>


Lai iegūtu papildinformāciju, skatiet Konstruktori

26. Kas ir C++ destrutori?

Iznīcinātāji ir klases funkciju dalībnieki, kas dzēš objektu, kad klases objekts iziet ārpus darbības jomas. Destruktoriem ir tāds pats nosaukums kā klasei, pirms kuras ir tildes (~) zīme. Arī iznīcinātāji seko a uz leju uz augšu pieeja, atšķirībā no konstruktoriem, kas seko no augšas uz leju.

Sintakse:

~constructor_name(); // tilde sign signifies that it is a destructor>

Lai iegūtu papildinformāciju, skatiet Iznīcinātājs .

27. Kas ir virtuālais iznīcinātājs?

Iznīcinot atvasinātās klases gadījumus vai objektus, izmantojot bāzes klases rādītāja objektu, tiek izsaukts virtuālais iznīcinātājs, lai atbrīvotu atvasinātā klases objekta vai instances piešķirto atmiņu.

Virtuālais iznīcinātājs garantē, ka vispirms tiek izsaukts atvasinātās klases destruktors. Pēc tam tiek izsaukts bāzes klases destruktors, lai atbrīvotu vietu, ko aizņem abi mantojuma klases iznīcinātāji, kas pasargā mūs no atmiņas noplūdes. Ir ieteicams padarīt savu iznīcinātāju virtuālu ikreiz, kad jūsu klase ir polimorfa.

Lai iegūtu papildinformāciju, skatiet Virtuālais iznīcinātājs

28. Vai ir iespējama destruktora pārslodze? Ja jā, tad paskaidrojiet un ja nē, tad kāpēc?

Vienkārša atbilde ir mēs nevaram pārslogot iznīcinātāju. C++ valodā katrai klasei ir obligāti jābūt tikai destruktoram. Vēl jāpiemin, ka Destructor neņem argumentus un tiem nav parametru, kas varētu palīdzēt pārslogot.

C++ intervijas jautājumi – vidējais līmenis

29. Kādas darbības ir atļautas ar rādītājiem?

Rādītāji ir mainīgie, kas tiek izmantoti, lai saglabātu cita mainīgā adreses atrašanās vietu. Darbības, kas ir atļautas rādītājam, ir:

  1. Rādītāja palielināšana/samazināšana
  2. Vesela skaitļa saskaitīšana un atņemšana rādītājam
  3. Tāda paša veida rādītāju salīdzinājums

30. Kāds ir mērķis dzēst operators?

Dzēšanas operators tiek izmantots, lai dzēstu/noņemtu visas objekta īpašības/īpašības, atdalot tā atmiņu; turklāt tas beigās atgriež patiesu vai nepatiesu. Vienkārši izsakoties, tas iznīcina vai atdala masīvu un ne masīvu (rādītāja) objektus, kurus rada jaunas izteiksmes.

C++
int GFG = new int[100]; // uses GFG for deletion delete[] GFG;>

Lai iegūtu papildinformāciju, skatiet Dzēst operatoru

31. Kā dzēst [] atšķiras no dzēšanas?

dzēst[]

dzēst

To izmanto visa masīva dzēšanaiTo izmanto, lai izdzēstu tikai vienu rādītāju
To izmanto objektu dzēšanai jauns[]; Ar to mēs varam teikt, ka dzēst[] tiek izmantots, lai izdzēstu objektu masīvuTo izmanto objektu dzēšanai jauns; Ar to mēs varam teikt, ka dzēst tiek izmantots, lai izdzēstu vienu objektu
Tas var izsaukt tik daudz iznīcinātāju, cik vēlasTas var izsaukt klases iznīcinātāju tikai vienu reizi

32. Ko jūs zināt par draugu klasi un drauga funkciju?

Draugu klase ir klase, kas var piekļūt gan aizsargātajiem, gan privātajiem mainīgajiem klasēs, kurās tā ir deklarēta kā draugs.

Draugu klases piemērs:

C++
class Class_1st {  // ClassB is a friend class of ClassA  friend class Class_2nd;  statements; } class Class_2nd {  statements; }>


Drauga funkcija ir funkcija, ko izmanto, lai piekļūtu citu klašu privātajiem, aizsargātajiem un publiskajiem datu dalībniekiem vai dalībnieku funkcijām. Tas tiek deklarēts ar drauga atslēgvārdu. Drauga funkcijas priekšrocība ir tāda, ka tā nav saistīta ar klases tvērumu un, ja tā ir deklarēta klasē, turklāt to nevar izsaukt klases objekts; tāpēc to var izsaukt ar citām funkcijām. Ņemot vērā visus minētos punktus, varam teikt, ka drauga funkcija ir globāla funkcija .

Drauga funkcijas piemērs:

C++
class GFG {  statements;  friend dataype function_Name(arguments);  statements; } OR class GFG {  statements' friend int divide(10, 5);  statements; }>


Lai iegūtu papildinformāciju, skatiet drauga funkcija un draugu klase

33. Kas ir pārpildes kļūda?

Pārpildes kļūda rodas, ja datu tips ir pārāk liels, lai to apstrādātu. Vienkārši izsakoties, tas ir kļūdas veids, kas ir derīgs definētajam, bet pārsniedz izmantoto definēto diapazonu, kur tai jāsakrīt/atrodas.

Piemēram, int datu tipa diapazons ir –2 147 483 648 uz 2 147 483 647 un ja deklarējam lieluma mainīgo 2 247 483 648 tas radīs pārpildes kļūdu.

34. Ko dara darbības jomas izšķirtspējas operators?

Tvēruma izšķirtspējas operators tiek apzīmēts ar ' :: ‘ simbols. Tāpat kā tā nosaukums, šis operators atrisina programmas darbības jomas barjeru. Tvēruma izšķirtspējas operators tiek izmantots, lai atsauktos uz dalībnieka funkciju vai globālo mainīgo ārpus to darbības jomas, turklāt tas var piekļūt arī programmas slēptajam mainīgajam vai funkcijai.

Darbības jomas izšķirtspēja tiek izmantota daudziem uzdevumiem:

  1. Lai piekļūtu globālajam mainīgajam, ja ir vietējais mainīgais ar tādu pašu nosaukumu
  2. Lai definētu funkciju ārpus klases
  3. Vairāku mantojumu gadījumā
  4. Nosaukumvietai

Lai iegūtu papildinformāciju, skatiet Darbības jomas izšķirtspējas operators

35. Kas ir C++ piekļuves modifikatori?

Piekļuves ierobežojums, kas norādīts klases dalībniekiem (neatkarīgi no tā, vai tas ir dalībnieka funkcija vai datu dalībnieks), ir pazīstams kā piekļuves modifikatori/specifikatori.

Piekļuves pārveidotāji ir 3 veidu:

np.mean
  1. Privāts - Tam nevar ne piekļūt, ne to apskatīt ārpus klases
  2. Aizsargāts - Tam var piekļūt tad un tikai tad, ja piekļūtājs ir atvasinātā klase
  3. Publisks - Tam var piekļūt vai to var apskatīt ārpus klases

Lai iegūtu papildinformāciju, skatiet Piekļuves pārveidotāji

36. Vai var sastādīt programmu bez galvenās funkcijas?

Jā, ir pilnīgi iespējams sastādīt programmu bez main(). Piemēram, izmantojiet makro, kas definē galveno

C++
// C++ program to demonstrate the // a program without main() #include  #define fun main  int fun(void) {  printf('Geeksforgeeks');  return 0; }>

Lai iegūtu papildinformāciju, skatiet Vai jūs varat sastādīt programmu bez galvenās funkcijas

37. Kas ir STL?

STL ir pazīstama kā standarta veidņu bibliotēka, tā ir bibliotēka, kas nodrošina 4 komponentus, piemēram, konteineru, algoritmus un iteratorus.

C++ STL

Lai iegūtu papildinformāciju, skatiet STL valodā C++

38. Definējiet iekļauto funkciju. Vai C++ var izmantot rekursīvu iekļauto funkciju?

Iekļautā funkcija ir pieprasījuma forma, nevis pasūtījums kompilatoram, kā rezultātā mūsu funkcija tiek iekļauta galvenās funkcijas pamattekstā. Iekļautā funkcija var kļūt par papildu, ja funkcijas izpildes laiks ir mazāks par pārslēgšanās laiku no zvanītāja funkcijas uz izsaukto funkciju. Lai funkciju padarītu iekļautu, izmantojiet atslēgvārdu rindā pirms un definējiet funkciju, pirms tiek veikts funkcijas izsaukums.

Iekļautā funkcija

Iekļauts funkcijas skaidrojums

Sintakse:

inline data_type function_name() { Body; }>

Atbilde ir Nē; Tas nevar būt rekursīvs.

Iekļautā funkcija nevar būt rekursīva, jo iekļautas funkcijas gadījumā kods tiek vienkārši novietots pozīcijā, no kurienes tas tiek izsaukts, un stekā neuztur rekursijai nepieciešamo informāciju.

Turklāt, ja rekursīvas funkcijas priekšā ierakstāt iekļauto atslēgvārdu, kompilators to automātiski ignorēs, jo kompilators rindu uztver tikai kā ieteikumu.

Lai iegūtu papildinformāciju, skatiet Iekļautā funkcija

39. Kas ir abstraktā klase un kad jūs to lietojat?

Abstraktā klase ir klase, kas ir īpaši izstrādāta izmantošanai kā pamatklase. Abstraktā klase satur vismaz vienu tīru virtuālu funkciju. Jūs deklarējat tīru virtuālo funkciju, izmantojot a tīrs precizētājs (= 0) virtuālā dalībnieka funkcijas deklarācijā klases deklarācijā

Abstraktu klasi nevar izmantot kā parametra tipu, funkcijas atgriešanas veidu vai precīzas konversijas veidu, kā arī nevar deklarēt abstraktas klases objektu. Tomēr to var izmantot, lai deklarētu norādes un atsauces uz abstraktu klasi.

Abstraktā klase tiek izmantota, ja vēlaties nodrošināt kopīgu, ieviestu funkcionalitāti starp visām komponenta implementācijām. Abstraktās klases ļaus daļēji ieviest savu klasi, turpretim saskarnēs nebūs nekādas ieviešanas nevienam dalībniekam. Vienkāršiem vārdiem sakot, abstraktās nodarbības ir piemērotas, ja vēlaties saviem bērniem sniegt detalizētu informāciju par ieviešanu, bet nevēlaties ļaut, lai jūsu klases gadījums tiktu tieši instantiģēts.

40. Kādi ir statisko datu elementi un statisko dalībnieku funkcijas?

Klases statisko datu dalībnieks ir parasts datu elements, bet pirms tam ir statisks atslēgvārds. Programmā tas tiek izpildīts pirms galvenā () un tiek inicializēts uz 0, kad tiek izveidots pirmais klases objekts. Tas ir redzams tikai noteiktai klasei, bet tā darbības joma ir visu mūžu.

Sintakse:

  static Data_Type Data_Member;>

Statiskā dalībnieka funkcija ir dalībnieka funkcija, ko izmanto, lai piekļūtu citiem statisko datu elementiem vai citām statiskām biedru funkcijām. To definē arī ar statisku atslēgvārdu. Mēs varam piekļūt statiskajai dalībnieka funkcijai, izmantojot klases nosaukumu vai klases objektus.

Sintakse:

classname::function name(parameter);>

C++ intervijas jautājumi – eksperta līmenis

41. Kāds ir galvenais atslēgvārda nepastāvīgs lietojums?

Tāpat kā tās nosaukums, lietas var mainīties pēkšņi un negaidīti; Tāpēc to izmanto, lai informētu kompilatoru, ka vērtība var mainīties jebkurā laikā. Arī nepastāvīgais atslēgvārds neļauj kompilatoram veikt koda optimizāciju. Tas bija paredzēts izmantošanai saskarnē ar atmiņas kartētu aparatūru, signālu apstrādātājiem un mašīnkoda instrukcijām.

bash if paziņojums

Lai iegūtu papildinformāciju, skatiet šo Nepastāvīgs

42. Definējiet krātuves klasi C++ un nosauciet dažas

Krātuves klase tiek izmantota, lai definētu mainīgā vai funkcijas pazīmes (dzīves laiku un redzamību). Šīs funkcijas parasti palīdz izsekot mainīgā lieluma esamībai programmas izpildes laikā.

Sintakse:

storage_class var_data_type var_name;>

Daži uzglabāšanas klases veidi:

Uzglabāšanas klases piemēri

Lai iegūtu papildinformāciju, skatiet Uzglabāšanas klase

43. Kas ir mainīga krātuves klases specifikācija? Kā tos var izmantot?

Tāpat kā tā nosaukums, maināmās krātuves klases specifikators tiek izmantots tikai klases datu dalībniekam, lai padarītu to modificējamu, pat ja dalībnieks ir daļa no objekta, kas deklarēts kā const. Statiskie vai const vai atsauces locekļi nevar izmantot mainīgo specifikāciju. Kad mēs deklarējam funkciju kā const, šis funkcijai nodotais rādītājs kļūst par const.

44. Definējiet mainīgo Block tvērums.

Tātad mainīgā darbības joma ir reģions, kurā mainīgais ir pieejams. Ir divi darbības jomas reģioni: A globālais un bloks vai lokālais.

Bloka darbības jomas mainīgais ir pazīstams arī kā lokālais tvēruma mainīgais. Mainīgais, kas ir definēts funkcijā (piemēram, galvenais) vai blokā (piemēram, cilpas un if blocks), ir lokāls mainīgais. To var izmantot TIKAI tajā konkrētajā funkcijā/blokā, kurā tas ir deklarēts. bloka darbības jomas mainīgais nebūs pieejams ārpus bloka pat tad, ja bloks atrodas funkcijā.

Lai iegūtu papildinformāciju, skatiet Mainīgā lieluma apjoms

45. Kāda ir atslēgvārda Auto funkcija?

Automātisko atslēgvārdu var izmantot, lai tiešā veidā deklarētu mainīgo ar sarežģītu veidu. Varat izmantot automātisko, lai deklarētu mainīgo, ja inicializācijas frāzē ir veidnes, norādes uz funkcijām, atsauces uz dalībniekiem utt. Izmantojot tipa secinājumu iespējas, mēs varam pavadīt mazāk laika, lai izrakstītu lietas, kuras kompilators jau zina. Tā kā visi veidi tiek izsecināti tikai kompilatora fāzē, kompilācijas laiks nedaudz palielinās, bet tas neietekmē programmas izpildes laiku.

Lai iegūtu papildinformāciju, skatiet Automašīnas C++ valodā

46. ​​Definējiet nosaukumvietu programmā C++.

Nosaukumvietas ļauj sakārtot nosauktos vienumus, kuriem citādi būtu globāla tvērums, mazākos tvērumos, ļaujot tiem piešķirt nosaukumvietas darbības jomu. Tas ļauj programmas daļas sakārtot atšķirīgos loģiskos apgabalos ar nosaukumiem. Nosaukumtelpa nodrošina vietu, kur definēt vai deklarēt identifikatorus, piemēram, mainīgos, metodes un klases.

Vai arī mēs varētu teikt, ka nosaukumtelpa ir deklaratīva zona, kas tajā esošajiem identifikatoriem (tipu nosaukumiem, funkciju nosaukumiem, mainīgajiem un tā tālāk) piešķir tvērumu. Nosaukumvietas tiek izmantotas, lai sakārtotu kodu loģiskās kategorijās un izvairītos no nosaukumu sadursmes, kas var notikt, ja jūsu kodu bāzē ir daudz bibliotēku.

Lai iegūtu papildinformāciju, skatiet Vārdtelpa programmā C++

47. Kad tiek izmantots atgriešanas veids void()?

Void atslēgvārds, ja to izmanto kā funkcijas atgriešanas veidu, norāda, ka funkcija neatgriež vērtību. Ja to izmanto kā funkcijas parametru sarakstu, tukšums norāda, ka funkcija neizmanto parametrus. Funkcijas, kas neatgriež vērtību, ir pazīstamas arī kā nederīgas funkcijas. Tos sauc par nederīgiem, jo ​​tie nav paredzēti, lai kaut ko atgrieztu. Taisnība, bet tikai daļēji. Mēs nevaram atgriezt vērtības no tukšajām funkcijām, taču mēs noteikti varam kaut ko atgriezt. Lai gan spēkā esošām funkcijām nav atgriešanas veida, tās var atgriezt vērtības.

Lai iegūtu papildinformāciju, skatiet Nederīgs atgriešanas veids .

48. Kāda ir atšķirība starp seklu kopiju un dziļo kopiju?

Sekla kopija

Dziļā kopija

Seklā kopijā tiek saglabāta oriģinālā objekta kopija un beidzot tiek kopēta tikai atsauces adrese. Vienkārši izsakoties, sekla kopija dublē pēc iespējas mazākPadziļinātajā kopijā tiek saglabāta gan oriģinālā objekta kopija, gan atkārtotās kopijas. Vienkārši izsakoties, Deep copy dublē visu
Sekla kolekcijas kopija ir kolekcijas struktūras, nevis elementu kopija. Izmantojot seklu kopiju, divas kolekcijas tagad koplieto atsevišķus elementus.Kolekcijas dziļa kopija ir divas kolekcijas, kurās ir dublēti visi sākotnējās kolekcijas elementi.
Sekla kopija ir ātrākaDziļā kopēšana ir salīdzinoši lēnāka.

Lai iegūtu papildinformāciju, skatiet Sekla kopija VS dziļa kopija

49. Vai mēs varam izsaukt virtuālu funkciju no konstruktora?

Jā, mēs varam izsaukt virtuālo funkciju no konstruktora. Bet tas var radīt izņēmumu par pārsvaru.

50. Kas ir tukšās norādes?

Tāpat kā tā nosaukums, tukšais rādītājs ir rādītājs, kas nav saistīts ne ar ko vai ne ar vienu datu tipu. Tomēr tukšajā rādītājā var būt jebkura veida adreses vērtība, un to var pārveidot no viena datu veida citā.

Lai iegūtu vairāk informācijas, atsaucas uz Nederīgs rādītājs programmā C++

Bonusa jautājums:

Kas ir ' šis ‘ rādītājs programmā C++?

šis rādītājs ļauj katram objektam piekļūt savai adresei, izmantojot būtisku rādītāju. Visas dalībnieka funkcijas tiek veiktas šis rādītājs kā netiešs arguments. šis rādītājs var izmantot, lai atsauktos uz izsaucošo objektu dalībnieka funkcijā.

  • šis rādītājs tiek izmantots, lai nodotu objektu kā parametru citai metodei.
  • Katrs objekts iegūst savu datu dalībnieka kopiju.
  • šis rādītājs tiek izmantots indeksētāju deklarēšanai.

Lai iegūtu papildinformāciju, skatiet šis rādītājs programmā C++