C++ – det må-kjente og favorittprogrammeringsspråket til programmerere. Den er fortsatt aktuell slik den var på midten av 80-tallet. Som et generellt og objektorientert programmeringsspråk brukes det stort sett hver gang under koding. Som et resultat krever noen jobbroller at enkeltpersoner er flytende i C++. Det benyttes av topp IT-selskaper som f.eks Evernote, LinkedIn, Microsoft, Opera, NASA , og Meta på grunn av påliteligheten, ytelsen og det brede utvalget av innstillinger den kan brukes i. Så for å komme inn i disse selskapene, må du være grundig i disse topp 50 C++ intervjuspørsmål som kan få deg til å virke som en ekspert foran rekrutterere.

For å gjøre deg klar til intervju har vi tatt med Topp 50 C++ intervjuspørsmål for nybegynner, middels og erfaren som du definitivt må gå gjennom for å få deg plassert på topp MNCs.
C++ intervjuspørsmål for ferskinger
1. Hva er C++? Hva er fordelene med C++?
C++ er et objektorientert programmeringsspråk som ble introdusert for å overvinne jurisdiksjonene der C manglet. Med objektorientert mener vi at det fungerer med begrepet polymorfisme , arv , abstraksjon , innkapsling , objekt og klasse .
Fordeler med C++ :
- C++ er et OOPs-språk som betyr at dataene betraktes som objekter.
- C++ er et multi-paradigme språk; Enkelt sagt betyr det at vi kan programmere logikken, strukturen og prosedyren til programmet.
- Minnehåndtering er en nøkkelfunksjon i C++ ettersom den muliggjør dynamisk minneallokering
- Det er et programmeringsspråk på mellomnivå som betyr at det kan utvikle spill, skrivebordsapplikasjoner, drivere og kjerner
For å lese mer, se artikkelen – Hva er fordelene med C++?
2. Hva er de forskjellige datatypene som finnes i C++?

Ulike typer datatyper i C++
For mer informasjon, se ' standard’ er også kjent som Standard eller det kan tolkes som et navneområde. Kommandoen bruker navneområde std informerer kompilatoren om å legge til alt under standard navneområde og innprente dem i globalt navneområde . Denne all innprenting av globale navnerom er fordelaktig for oss å bruke cout og spiser uten å bruke std::_operatør_.
For mer informasjon, se navneområde og std .
4. Hva er referanser i C++?
Når en variabel beskrives som en referanse, blir den et alias for den allerede eksisterende variabelen. Enkelt sagt er en referert variabel en annen navngitt variabel for en eksisterende variabel, med tanke på at endringer som gjøres i referansevariabelen vil reflekteres i den allerede eksisterende variabelen. En referansevariabel innledes med a '&' symbol.
Syntaks:
int GFG = 10; // reference variable int& ref = GFG;>
For mer informasjon, se referanser i C++
5. Hva mener du med Call by Value og Call by Reference?
I dette programmeringsspråket for å kalle en funksjon har vi 2 metoder: Ring etter verdi og Ring etter referanse
Ring etter verdi | Ring etter referanse |
|---|---|
| En kopi av en variabel sendes. | En variabel i seg selv overføres fundamentalt. |
| Kalle opp en funksjon ved å sende verdiene ved å kopiere variabler. | Kalle opp en funksjon ved å sende adressen til den beståtte variabelen. |
| Endringene som gjøres i funksjonen reflekteres aldri utenfor funksjonen på variabelen. Kort sagt, den opprinnelige verdien endres aldri i Call by Value. | Endringene som er gjort i funksjonene kan sees utenfor funksjonen på den beståtte funksjonen. Kort sagt, den opprinnelige verdien endres i Call ved referanse. |
| Beståtte faktiske og formelle parametere lagres på forskjellige minneplasseringer. Derfor gjør Call by Value litt minne utilstrekkelig | Beståtte faktiske og formelle parametere lagres på samme minneplassering. Derfor gjør Call by Reference litt mer minneeffektivt. |
For informasjon, se forskjellen mellom call by value og call by reference
6. Definer token i C++
Et token er det minste individuelle elementet i et program som forstås av en kompilator. Et token består av følgende:
- Nøkkelord – Det har en spesiell betydning for kompilatoren
- Identifikatorer – Som har en unik verdi/identitet
- Konstanter – Det endrer aldri verdien deres gjennom hele programmet
- Strenger – Det inneholder den homogene sekvensen av data
- Spesielle symboler – De har en spesiell betydning og kan ikke brukes til andre formål; f.eks: [] () {}, ; * = #
- Operatører – Hvem utfører operasjoner på operanden
For mer informasjon, se Tokens i C++
7. Hva er forskjellen mellom C og C++?
C | C++ |
|---|---|
| Det er et prosedyrespråk. Med enkle ord støtter den ikke klasser og objekter | Det er en blanding av både prosedyre- og objektorienterte programmeringsspråk. Med enkle ord støtter den klasser og objekter. |
| Den støtter ikke noen OOPs-konsepter som polymorfisme, dataabstraksjon, innkapsling, klasser og objekter. | Den støtter alle konsepter av data |
| Den støtter ikke funksjon og operatøroverbelastning | Den støtter henholdsvis funksjon og operatøroverbelastning |
| Det er et funksjonsdrevet språk | Det er et objektdrevet språk |
For mer informasjon, se Forskjellen mellom C og C++
8. Hva er forskjellen mellom struktur og klasse?
Struktur | Klasse |
|---|---|
| Medlemmer av strukturen er alltid som standard offentlig modus | Medlemmer av klassen kan være i private, beskyttede og offentlige moduser. |
| Strukturer er av verditypen. De har bare verdi i minnet. | Klassene er av referansetype. Den har en referanse til et objekt i minnet. |
| Minnet i strukturer lagres som stabler | Minnet i klassene er lagret som hauger. |
For mer informasjon, se Forskjellen mellom struktur og klasse.
9. Hva er forskjellen mellom referanse og peker?
Henvisning strengmetoder java | Peker |
|---|---|
| Verdien til en referanse kan ikke tilordnes på nytt | Verdien til en peker kan tilordnes på nytt |
| Det kan aldri holde en null verdi ettersom den trenger en eksisterende verdi for å bli et alias for | Den kan holde eller peke på en null verdi og bli betegnet som en nullptr eller null-peker |
| Det kan ikke fungere med arrays | Det kan fungere med arrays |
| For å få tilgang til medlemmene av klassen/struct bruker den en ' . ' | For å få tilgang til medlemmene av klassen/struct bruker den en ' -> ' |
| Minneplasseringen for referanse kan enkelt nås eller den kan brukes direkte | Minneplasseringen til en peker kan ikke lett nås da vi må bruke en dereference ' * ' |
For mer informasjon, se Forskjellen mellom referanse og peker
10. Hva er forskjellen mellom funksjonsoverbelastning og operatøroverbelastning?
Funksjon Overbelastning | Operatør overbelastning |
|---|---|
| Det er i bunn og grunn å definere en funksjon på mange måter, slik at det er mange måter å kalle den på, eller enkelt sagt har du flere versjoner av samme funksjon | Det er i bunn og grunn å øve seg på å gi en spesiell mening til den eksisterende betydningen av en operatør eller i enkle vendinger å redefinere den forhåndsdefinerte betydningen |
| Parameteriserte funksjoner er et godt eksempel på funksjonsoverbelastning, da bare ved å endre argumentet eller parameteren til en funksjon gjør du den nyttig for forskjellige formål | Polymorfisme er et godt eksempel på en operatør som overbelastning som et objekt av allokeringer klasse kan brukes og kalles av forskjellige klasser for forskjellige formål |
Eksempel på funksjonsoverbelastning:
| Eksempel på operatøroverbelastning:
|
For mer informasjon, se Operatør overbelastning og Funksjon Overbelastning
11. Hva er forskjellen mellom en matrise og en liste?
Matriser | Lister |
|---|---|
| Array er sammenhengende minneplasseringer av homogene datatyper lagret på en fast plassering eller størrelse. | Lister er klassiske enkeltelementer som er knyttet eller koblet til hverandre ved hjelp av pekere og ikke har en fast størrelse. |
| Arrays er statiske i naturen. | Lister er dynamiske |
| Bruker mindre minne enn koblede lister. | Bruker mer minne da den må lagre verdien og pekerminneplasseringen |
For mer informasjon, se Arrays vs List
12. Hva er forskjellen mellom en while loop og en do-while loop?
Mens Loop | gjør-mens-løkke |
|---|---|
| Mens loop kalles også en inngangskontrollert loop | Do-while-løkken kalles en utgangskontrollløkke |
| Hvis betingelsen ikke er oppfylt, vil ikke setningene i loopen utføres | Selv om betingelsen ikke er oppfylt, vil setningene i løkken utføres i minst én gang |
Eksempel av en stund løkke: mens (tilstand) liste som array {utsagn som skal utføres;}; | Eksempel av en do-while-løkke: gjør { uttalelser som skal utføres; } while(betingelse eller uttrykk); |
For mer informasjon, se Forskjellen mellom while og do-while loop
13. Diskuter forskjellen mellom prefiks og postfiks?
prefiks | postfix |
|---|---|
| Det betyr ganske enkelt å sette operatøren foran operanden | Det betyr ganske enkelt å sette operatøren etter operanden |
| Den utfører seg selv før '; ' | Den utfører seg selv etterpå '; ' |
| Assosiativiteten til prefikset ++ er høyre til venstre | Assosiativiteten til postfix ++ er venstre til høyre |
For mer informasjon, se Forskjellen mellom prefiks og postfiks
14. Hva er forskjellen mellom new og malloc()?
ny | malloc() |
|---|---|
| new er en operatør som utfører en operasjon | malloc er en funksjon som returnerer og aksepterer verdier |
| nye kaller konstruktørene | malloc kan ikke kalle en konstruktør |
| new er raskere enn malloc ettersom det er en operatør | malloc er tregere enn ny da det er en funksjon |
| new returnerer den eksakte datatypen | malloc returnerer ugyldig* |
For mer informasjon, se Forskjellen mellom new og malloc()
15. Hva er forskjellen mellom virtuelle funksjoner og rene virtuelle funksjoner?
Virtuell funksjon | Ren virtuell funksjon |
|---|---|
| En virtuell funksjon er en medlemsfunksjon av en basisklasse som kan omdefineres i en annen avledet klasse. | En ren virtuell funksjon er en medlemsfunksjon av en basisklasse som bare er deklarert i en basisklasse og definert i en avledet klasse for å forhindre at den blir en abstrakt klasse. |
| En virtuell funksjon har sin definisjon i sin respektive grunnklasse. | Det er ingen definisjon i Pure Virtual Function og initialiseres med en ren spesifikasjoner (= 0). |
| Basisklassen har en virtuell funksjon som kan representeres eller instanseres; Med enkle ord kan objektet lages. | En basisklasse med ren virtuell funksjon blir abstrakt som ikke kan representeres eller instanseres; Med enkle ord betyr det at objektet ikke kan lages. |
For mer informasjon, se Forskjellen mellom virtuelle funksjoner og rene virtuelle funksjoner
16. Hva er klasser og objekter i C++?
En klasse er en brukerdefinert datatype hvor alle medlemsfunksjonene og datamedlemmene er skreddersydd etter krav og krav i tillegg til at disse alle kan nås ved hjelp av en gjenstand . For å deklarere en brukerdefinert datatype bruker vi et nøkkelord klasse.
Et objekt er en forekomst av en klasse og en enhet med verdi og tilstand; Enkelt sagt brukes det som en katalysator eller for å representere et klassemedlem. Den kan inneholde forskjellige parametere eller ingen.
Merk: En klasse er en blåkopi som definerer funksjoner som brukes av et objekt.
For mer informasjon, se denne Hva er klasser og objekter
17. Hva er funksjonsoverstyring?
Når en funksjon med samme navn, samme argumenter eller parametere og samme returtype som allerede er til stede/erklært i basisklassen brukes i en avledet klasse, kalles funksjonsoverstyring. Det er et eksempel på Runtime Polymorphism eller Late Binding som betyr at den overstyrte funksjonen vil bli utført på kjøretiden for utførelsen.
For mer informasjon, se Funksjonsoverstyring i C++
18. Hva er de ulike OOPs-konseptene i C++?
- Klasser : Det er en brukerdefinert datatype
- Objekter : Det er et eksempel på en klasse
- Abstraksjon: Det er en teknikk for å vise bare nødvendige detaljer
- Innkapsling: Innpakning av data i en enkelt enhet
- Arv: Evnen til en klasse til å utlede egenskaper og egenskaper fra en annen klasse
- Polymorfisme: Polymorfisme er kjent som mange former for det samme
For mer informasjon, se Ulike OOPs-konsepter i C++
19. Forklar arv
Evnen eller evnen til en klasse til å utlede egenskaper og egenskaper fra en annen klasse er kjent som arv. Enkelt sagt er det et system eller en teknikk for å gjenbruke og utvide eksisterende klasser uten å endre dem.
For mer informasjon, se Arv
20. Når skal vi bruke multippel arv?
Flere arv betyr at en avledet klasse kan arve to eller flere base/overordnede klasser. Det er nyttig når en avledet klasse trenger å kombinere mange attributter/kontrakter og arve noe, eller hele, implementeringen fra disse attributtene/kontraktene. For å ta et eksempel fra det virkelige liv, tenk på foreldrene dine, der foreldre A er din FAR. Foreldre B er din MAMMA og Chid C er deg.

Flere arv
For mer informasjon, se Multippel arv .
21. Hva er virtuell arv?
Virtuell arv er en teknikk som sikrer at bare én kopi av en basisklasses medlemsvariabler arves av barnebarnsavledede klasser. Eller forenklet sagt, virtuell arv brukes når vi har å gjøre med en situasjon med flere arv, men ønsker å forhindre at flere forekomster av samme klasse vises i arvehierarkiet.
22. Hva er polymorfisme i C++?
Polymorfisme er kjent som mange former for det samme. Enkelt sagt kan vi si at polymorfisme er evnen til å vise en medlemsfunksjon i flere former avhengig av typen objekt som kaller dem.
Med andre ord kan vi også si at en mann kan være ansatt for noen, sønn av noen, far til noen og ektemann til noen; dette er hvordan polymorfisme kan projiseres i det virkelige liv.
Det er 2 typer polymorfisme:
- Kompiler tidspolymorfisme
- Funksjon Overbelastning
- Operatør overbelastning
- Run Time Polymorphism
- Funksjonsoverstyring
- Virtuell funksjon
For å vite mer om det, se Polymorfisme
23. Hva er de forskjellige typene polymorfi i C++?
Det er 2 typer polymorfisme
i regex i java
Kompiler tidspolymorfisme eller statisk binding
Denne typen polymorfisme oppnås i løpet av kompileringstiden til programmet, noe som resulterer i at det går litt raskere enn kjøretiden. Arv er heller ikke involvert i det. Den består av 2 ytterligere teknikker :
Funksjonsoverbelastning: Når det er flere funksjoner med samme navn, men forskjellige parametere, er dette kjent som funksjonsoverbelastning.
C++ // same name different arguments int GFG() {} int GFG(int a) {} float GFG(double a) {} int GFG(int a, double b) {}>
Operatør overbelastning: Det er i bunn og grunn å øve seg på å gi en spesiell mening til den eksisterende betydningen av en operatør eller i enkle vendinger å redefinere den forhåndsdefinerte betydningen
class GFG { // private and other modes statements public returnType operator symbol(arguments){ statements } statements };>
Run-Time polymorfisme eller sen binding
Kjøretidspolymorfisme finner sted når funksjoner påkalles under kjøring.
Funksjonsoverstyring: Funksjonsoverstyring skjer når en basisklassemedlemsfunksjon omdefineres i en avledet klasse med samme argumenter og returtype.
// 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; }> Produksjon:
Function of derived class>
For mer informasjon, se Ulike typer polymorfisme
24. Sammenlign kompileringstidspolymorfisme og Runtime-polymorfisme
Kompileringstidspolymorfisme | Runtime polymorfisme |
|---|---|
| Det kalles også statisk binding og tidlig binding. | Det kalles også Dynamisk binding og Sen binding. |
| Det er raskt fordi utførelse er kjent tidlig på kompileringstidspunktet. | Det er tregt sammenlignet med kompileringstid fordi utførelse er kjent under kjøretid. |
| Det oppnås ved funksjonsoverbelastning og operatøroverbelastning. | Det oppnås ved virtuelle funksjoner og funksjonsoverstyring. |
For mer informasjon, se Kompileringstidspolymorfisme og Runtime-polymorfisme
25. Forklar konstruktøren i C++.
En konstruktør er en spesiell type medlemsfunksjon til en klasse, hvis navn er det samme som navnet på klassen som den påkalles av og initialiserer verdi til objektet til en klasse.
Det er 3 typer konstruktører:
A. Standard konstruktør: Det er den mest grunnleggende typen konstruktør som ikke godtar noen argumenter eller parametere. Selv om det ikke kalles, kaller kompilatoren det automatisk når et objekt opprettes.
Eksempel:
C++ class Class_name { public: Class_name() { cout << 'I am a default constructor'; } };>
B. Parameterisert konstruktør: Det er en type konstruktør som godtar argumenter eller parametere. Det må kalles eksplisitt ved å sende verdier i argumentene, da disse argumentene hjelper til med å initialisere et objekt når det opprettes. Den har også samme navn som klassen.
Den brukes også til å overbelaste konstruktører.
Eksempel:
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; }> Produksjon
G.x = 10, G.y = 15>
C. Kopikonstruktør: En kopikonstruktør er en medlemsfunksjon som initialiserer et objekt ved å bruke et annet objekt av samme klasse. Copy-konstruktøren tar også en referanse til et objekt av samme klasse som et argument.
Eksempel:
C++ Sample(Sample& t) { id = t.id; }>
For mer informasjon, se Konstruktører
26. Hva er destruktorer i C++?
Destruktorer er medlemmer av funksjoner i en klasse som sletter et objekt når et objekt i klassen går utenfor omfanget. Destruktorer har samme navn som klassen med et tilde (~)-tegn foran. Destruktorer følger også en ned til toppen tilnærming, i motsetning til konstruktører som følger en topp-til-ned.
Syntaks:
~constructor_name(); // tilde sign signifies that it is a destructor>
For mer informasjon, se ødelegger .
27. Hva er en virtuell destruktor?
Når du ødelegger forekomster eller objekter av en avledet klasse ved å bruke et basisklassepekerobjekt, påkalles en virtuell destruktor for å frigjøre minneplass tildelt av det avledede klasseobjektet eller forekomsten.
Virtual destructor garanterer at først den avledede klassens destructor kalles. Deretter kalles baseklassens destruktor for å frigjøre plassen som er okkupert av begge destruktorene i arveklassen, noe som redder oss fra minnelekkasjen. Det anbefales å gjøre destruktoren virtuell når klassen din er polymorf.
For mer informasjon, se Virtual Destroyer
webdriver
28. Er destruktor overbelastning mulig? Hvis ja, forklar og hvis nei hvorfor?
Det enkle svaret er NEI vi kan ikke overbelaste en destruktor. Det er obligatorisk å kun destructor per klasse i C++. Også for å nevne, Destructor verken tar argumenter eller de har en parameter som kan bidra til å overbelaste.
C++ intervjuspørsmål – mellomnivå
29. Hvilke operasjoner er tillatt på pekere?
Pekere er variablene som brukes til å lagre adresseplasseringen til en annen variabel. Operasjoner som er tillatt for en peker er:
- Økning/reduksjon av en peker
- Addisjon og subtraksjon av heltall til en peker
- Sammenligning av pekere av samme type
30. Hva er formålet med slette operatør?
Slett-operatoren brukes til å slette/fjerne alle egenskapene/egenskapene fra et objekt ved å deallokere minnet; dessuten returnerer det sant eller usant til slutt. Enkelt sagt ødelegger eller deallokerer det matrise- og ikke-matrise(peker)-objekter som er skapt av nye uttrykk.
C++ int GFG = new int[100]; // uses GFG for deletion delete[] GFG;>
For mer informasjon, se Slett operatør
31. Hvordan er slett [] forskjellig fra slett?
slett[] | slette |
|---|---|
| Den brukes til å slette en hel matrise | Den brukes til å slette bare én enkelt peker |
| Den brukes til å slette objektene til ny[]; Med dette kan vi si det slett[] brukes til å slette en rekke objekter | Den brukes til å slette objektene til ny; Med dette kan vi si det slette brukes til å slette et enkelt objekt |
| Den kan kalle så mange destruktorer den vil | Den kan bare ringe destruktoren av en klasse én gang |
32. Hva vet du om venneklasse og vennefunksjon?
En venneklasse er en klasse som kan få tilgang til både de beskyttede og private variablene til klassene der den er erklært som en venn.
Eksempel på venneklasse:
C++ class Class_1st { // ClassB is a friend class of ClassA friend class Class_2nd; statements; } class Class_2nd { statements; }>
En vennefunksjon er en funksjon som brukes for å få tilgang til private, beskyttede og offentlige datamedlemmer eller medlemsfunksjoner til andre klasser. Det er deklarert med et venn-søkeord. Fordelen med en vennefunksjon er at den ikke er bundet til omfanget av klassen, og når den først er deklarert i en klasse, kan den heller ikke kalles opp av et objekt i klassen; derfor kan den kalles opp av andre funksjoner. Med tanke på alle de nevnte punktene kan vi si at en vennefunksjon er en global funksjon .
Eksempel på vennefunksjon:
C++ class GFG { statements; friend dataype function_Name(arguments); statements; } OR class GFG { statements' friend int divide(10, 5); statements; }>
For mer informasjon, se vennefunksjon og venneklasse
33. Hva er en overløpsfeil?
Overløpsfeil oppstår når tallet er for stort til at datatypen kan håndtere. Enkelt sagt er det en type feil som er gyldig for det definerte, men som overskrider det definerte området hvor den skal sammenfalle/ligge.
For eksempel er området for int-datatypen –2 147 483 648 til 2.147.483.647 og hvis vi erklærer en størrelsesvariabel 2.247.483.648 det vil generere en overløpsfeil.
34. Hva gjør Scope Resolution-operatøren?
En scope resolution operator er merket med en ' :: 'symbol. Akkurat som navnet løser denne operatøren barrieren for omfang i et program. En scope resolution operator brukes til å referere til en medlemsfunksjon eller en global variabel utenfor deres scope, og som den også kan få tilgang til den skjulte variabelen eller funksjonen i et program.
Scope Resolution brukes til en rekke oppgaver:
- For å få tilgang til en global variabel når det er en lokal variabel med samme navn
- For å definere funksjonen utenfor klassen
- Ved flere arv
- For navneområde
For mer informasjon, se Operatør for omfangsoppløsning
35. Hva er C++-tilgangsmodifikatorene?
Tilgangsbegrensningen spesifisert for klassemedlemmene (enten det er medlemsfunksjon eller datamedlem) er kjent som tilgangsmodifikatorer/spesifikasjoner.
Tilgangsmodifikatorer er av 3 typer:
- Privat – Den kan verken nås eller sees fra utenfor klassen
- Beskyttet – Den kan nås hvis og bare hvis aksessoren er den avledede klassen
- Offentlig – Den kan nås eller sees fra utenfor klassen
For mer informasjon, se Tilgangsmodifikatorer
36. Kan du kompilere et program uten hovedfunksjonen?
Ja, det er absolutt mulig å kompilere et program uten en main(). Bruk for eksempel makroer som definerer hoveden
C++ // C++ program to demonstrate the // a program without main() #include #define fun main int fun(void) { printf('Geeksforgeeks'); return 0; }> For mer informasjon, se Kan du kompilere et program uten hovedfunksjonen
37. Hva er STL?
STL er kjent som Standard Template Library, det er et bibliotek som gir 4 komponenter som container, algoritmer og iteratorer.

C++ STL
For mer informasjon, se STL i C++
38. Definer innebygd funksjon. Kan vi ha en rekursiv innebygd funksjon i C++?
En innebygd funksjon er en form for forespørsel, ikke en ordre til en kompilator som resulterer i inlining av funksjonen vår til hovedfunksjonskroppen. En innebygd funksjon kan bli overhead hvis utførelsestiden for funksjonen er mindre enn byttetiden fra oppringingsfunksjonen til funksjonen som kalles. For å lage en funksjon innebygd, bruk nøkkelordet på linje før og definere funksjonen før det foretas anrop til funksjonen.

Inline funksjon Forklaring
Syntaks:
inline data_type function_name() { Body; }>Svaret er Nei; Det kan ikke være rekursivt.
En innebygd funksjon kan ikke være rekursiv fordi når det gjelder en innebygd funksjon, plasseres koden bare i posisjonen der den kalles og opprettholder ikke en del informasjon på stabelen som er nødvendig for rekursjon.
Pluss, hvis du skriver et innebygd nøkkelord foran en rekursiv funksjon, vil kompilatoren automatisk ignorere det fordi det innebygde kun tas som et forslag av kompilatoren.
For mer informasjon, se Inline funksjon
39. Hva er en abstrakt klasse og når bruker du den?
En abstrakt klasse er en klasse som er spesielt designet for å brukes som en basisklasse. En abstrakt klasse inneholder minst én ren virtuell funksjon. Du erklærer en ren virtuell funksjon ved å bruke en ren spesifikasjoner(= 0) i erklæringen om en virtuell medlemsfunksjon i klasseerklæringen
Du kan ikke bruke en abstrakt klasse som en parametertype, en funksjonsreturtype eller typen til en eksplisitt konvertering, og du kan heller ikke deklarere et objekt av en abstrakt klasse. Imidlertid kan den brukes til å erklære pekere og referanser til en abstrakt klasse.
En abstrakt klasse brukes hvis du ønsker å gi en felles, implementert funksjonalitet blant alle implementeringene av komponenten. Abstrakte klasser vil tillate deg å delvis implementere klassen din, mens grensesnitt ikke ville ha noen implementering for noen medlemmer overhodet. Med enkle ord, abstrakte klasser passer godt hvis du ønsker å gi implementeringsdetaljer til barna dine, men ikke vil tillate at en forekomst av klassen din blir direkte instansiert.
40. Hva er statiske datamedlemmer og statiske medlemsfunksjoner?
Det statiske datamedlemmet i en klasse er et normalt datamedlem, men innledes med et statisk nøkkelord. Den kjøres før main() i et program og initialiseres til 0 når det første objektet i klassen er opprettet. Den er bare synlig for en definert klasse, men dens omfang er for livet.
Syntaks:
static Data_Type Data_Member;>
Den statiske medlemsfunksjonen er medlemsfunksjonen som brukes til å få tilgang til andre statiske datamedlemmer eller andre statiske medlemsfunksjoner. Det er også definert med et statisk nøkkelord. Vi kan få tilgang til den statiske medlemsfunksjonen ved å bruke klassenavnet eller klasseobjektene.
Syntaks:
classname::function name(parameter);>
C++ Intervjuspørsmål – Ekspertnivå
41. Hva er hovedbruken av søkeordet Volatile?
Akkurat som navnet kan ting endre seg plutselig og uventet; Så den brukes til å informere kompilatoren om at verdien kan endres når som helst. Dessuten forhindrer det flyktige nøkkelordet kompilatoren fra å utføre optimalisering av koden. Den var ment å brukes ved grensesnitt med minnetilordnet maskinvare, signalbehandlere og maskinkodeinstruksjoner.
For mer informasjon, se denne Flyktige
42. Definer lagringsklasse i C++ og nevne noen
Lagringsklasse brukes til å definere funksjonene (levetid og synlighet) til en variabel eller funksjon. Disse funksjonene hjelper vanligvis med å spore eksistensen av en variabel under kjøretiden til et program.
Syntaks:
storage_class var_data_type var_name;>
Noen typer lagringsklasser:

Eksempler på oppbevaringsklasse
For mer informasjon, se Lagringsklasse
43. Hva er en foranderlig lagringsklassespesifikasjoner? Hvordan kan de brukes?
Akkurat som navnet, brukes den foranderlige lagringsklassespesifikatoren bare på et klassedatamedlem for å gjøre det modifiserbart selv om medlemmet er en del av et objekt erklært som const. Statiske eller konstante eller referansemedlemmer kan ikke bruke den mutable spesifikasjonen. Når vi erklærer en funksjon som const, blir denne pekeren som sendes til funksjonen const.
44. Definer Block scope-variabelen.
Så omfanget av en variabel er et område der en variabel er tilgjengelig. Det er to omfangsregioner, A global og blokk eller lokal.
En blokkomfangsvariabel er også kjent som en lokal omfangsvariabel. En variabel som er definert inne i en funksjon (som hoved) eller inne i en blokk (som løkker og hvis blokker) er en lokal variabel. Den kan KUN brukes innenfor den bestemte funksjonen/blokken der den er deklarert. en blokkomfattende variabel vil ikke være tilgjengelig utenfor blokken selv om blokken er inne i en funksjon.
For mer informasjon, se Omfanget av en variabel
45. Hva er funksjonen til søkeordet Auto?
Auto-nøkkelordet kan brukes til å deklarere en variabel med en kompleks type på en enkel måte. Du kan bruke auto til å deklarere en variabel hvis initialiseringsfrasen inneholder maler, pekere til funksjoner, referanser til medlemmer osv. Med type-inferensfunksjoner kan vi bruke mindre tid på å måtte skrive ut ting kompilatoren allerede vet. Siden alle typene er utledet kun i kompilatorfasen, øker tiden for kompilering litt, men det påvirker ikke kjøretiden til programmet.
For mer informasjon, se Biler i C++
46. Definer navneområde i C++.
Navneområder gjør det mulig for oss å organisere navngitte elementer som ellers ville ha globalt omfang i mindre omfang, slik at vi kan gi dem navneområde. Dette gjør at programdeler kan organiseres i distinkte logiske omfang med navn. Navneområdet gir et sted å definere eller deklarere identifikatorer som variabler, metoder og klasser.
Eller vi kan si at et navneområde er en deklarativ sone som gir identifikatorene (navn på typer, funksjoner, variabler og så videre) innenfor den et omfang. Navneområder brukes til å ordne kode i logiske kategorier og for å unngå navnesammenstøt, som kan skje når du har mange biblioteker i kodebasen.
csma og csma cd
For mer informasjon, se Navneområde i C++
47. Når brukes returtypen void()?
Nøkkelordet void, når det brukes som en funksjonsreturtype, indikerer at funksjonen ikke returnerer en verdi. Når den brukes som en parameterliste for en funksjon, indikerer void at funksjonen ikke tar noen parametere. Ikke-verdireturfunksjoner er også kjent som ugyldige funksjoner. De kalles ugyldige siden de ikke er laget for å returnere noe. Sant, men bare delvis. Vi kan ikke returnere verdier fra ugyldige funksjoner, men vi kan absolutt returnere noe. Selv om void-funksjoner ikke har noen returtype, kan de returnere verdier.
For mer informasjon, se Ugyldig returtype .
48. Hva er forskjellen mellom grunne kopier og dype kopier?
Grunn kopi | Deep Copy |
|---|---|
| I Shallow copy lagres en kopi av originalobjektet og bare referanseadressen blir til slutt kopiert. Enkelt sagt, Shallow copy duplikater så lite som mulig | I dyp kopi lagres både kopien av originalobjektet og de repeterende kopiene. Enkelt sagt dupliserer Deep copy alt |
| En grunn kopi av en samling er en kopi av samlingsstrukturen, ikke elementene. Med en grunn kopi deler to samlinger nå individuelle elementer. | En dyp kopi av en samling er to samlinger med alle elementene i den originale samlingen duplisert. |
| En grunn kopi er raskere | Dypkopiering er relativt tregere. |
For mer informasjon, se Grunn kopi VS Deep Copy
49. Kan vi kalle en virtuell funksjon fra en konstruktør?
Ja, vi kan kalle en virtuell funksjon fra en konstruktør. Men det kan gi et unntak for overstyring.
50. Hva er void pointers?
Akkurat som navnet er en void-peker en peker som ikke er assosiert med noe eller med noen datatype. Likevel kan en void-peker holde adresseverdien av enhver type og kan konverteres fra en datatype til en annen.
For mer, refererer informasjon til Void Pointer i C++
Bonusspørsmål:
Hva er ' dette 'peker i C++?
dette pointer gjør at hvert objekt kan ha tilgang til sin egen adresse gjennom en viktig peker. Alle medlemsfunksjoner tar dette pekeren som et implisitt argument. dette pekeren kan brukes til å referere til det anropende objektet i en medlemsfunksjon.
- dette pekeren brukes til å sende et objekt som en parameter til en annen metode.
- Hvert objekt får sin egen kopi av datamedlemmet.
- dette pekeren brukes til å deklarere indeksere.
For mer informasjon, se dette peker i C++