C++ – znani in vedno priljubljeni programski jezik koderjev. Še vedno je aktualna, kot je bila sredi 80. let. Ker je programski jezik za splošne namene in objektno usmerjen programski jezik, se v veliki meri uporablja predvsem vsakič med kodiranjem. Posledično nekatere delovne vloge zahtevajo, da posamezniki tekoče govorijo C++. Uporabljajo ga vrhunska IT podjetja, kot npr Evernote, LinkedIn, Microsoft, Opera, NASA , in Meta zaradi njegove zanesljivosti, zmogljivosti in širokega nabora nastavitev, v katerih se lahko uporablja. Torej, če želite priti v ta podjetja, morate biti v njih temeljiti 50 najboljših vprašanj za razgovor o C++ zaradi česar se lahko pred zaposlovalci zdiš kot strokovnjak.

Da bi bili pripravljeni na intervju, smo prinesli 50 najbolj priljubljenih vprašanj za intervju za C++ začetnik, srednji in izkušen skozi katere morate vsekakor iti, da se uvrstite med najboljša multinacionalna podjetja.
Vprašanja za intervjuje za C++ za novince
1. Kaj je C++? Kakšne so prednosti C++?
C++ je objektno usmerjen programski jezik, ki je bil uveden za premagovanje jurisdikcij, kjer C manjka. Z objektno usmerjenim mislimo, da deluje s konceptom polimorfizem , dedovanje , abstrakcija , enkapsulacija , predmet in razred .
Prednosti C++ :
- C++ je jezik OOP, kar pomeni, da se podatki obravnavajo kot objekti.
- C++ je jezik z več paradigmami; Preprosto povedano, to pomeni, da lahko programiramo logiko, strukturo in postopek programa.
- Upravljanje pomnilnika je ključna funkcija v C++, saj omogoča dinamično dodeljevanje pomnilnika
- Je programski jezik srednje ravni, kar pomeni, da lahko razvija igre, namizne aplikacije, gonilnike in jedra
Če želite prebrati več, glejte članek – Kakšne so prednosti C++?
2. Kateri različni podatkovni tipi so prisotni v C++?

Različni tipi podatkovnih tipov v C++
Za več informacij glejte ' std' znan tudi kot standard ali pa ga je mogoče interpretirati kot imenski prostor. Ukaz uporaba imenskega prostora std obvesti prevajalnik, naj doda vse pod imenski prostor std in jih vcepiti v globalni imenski prostor . Vse to vcepljanje globalnega imenskega prostora nam koristi pri uporabi cout in prehranjevanje brez uporabe std::_operator_.
Za več informacij glejte imenski prostor in std .
4. Kaj so reference v C++?
Ko je spremenljivka opisana kot referenca, postane vzdevek že obstoječe spremenljivke. Preprosto povedano, referenčna spremenljivka je druga poimenovana spremenljivka obstoječe spremenljivke, ob upoštevanju, da se bodo spremembe v referenčni spremenljivki odrazile v že obstoječi spremenljivki. Pred referenčno spremenljivko je a '&' simbol.
Sintaksa:
int GFG = 10; // reference variable int& ref = GFG;>
Za več informacij glejte reference v C++
5. Kaj mislite z besedama klic po vrednosti in klic po referenci?
V tem programskem jeziku imamo za klic funkcije dve metodi: Klic po vrednosti in Klic po referenci
Klic po vrednosti | Klic po referenci |
|---|---|
| Podana je kopija spremenljivke. | Spremenljivka sama se posreduje fundamentalno. |
| Klicanje funkcije s pošiljanjem vrednosti s kopiranjem spremenljivk. | Klicanje funkcije s pošiljanjem naslova posredovane spremenljivke. |
| Spremembe v funkciji se nikoli ne odražajo zunaj funkcije na spremenljivki. Skratka, prvotna vrednost se v Call by Value nikoli ne spremeni. | Spremembe v funkcijah so vidne izven funkcije na opravljeni funkciji. Skratka, prvotna vrednost je spremenjena v Call by reference. |
| Preneseni dejanski in formalni parametri so shranjeni na različnih pomnilniških lokacijah. Zato je premalo pomnilnika za klic po vrednosti | Podani dejanski in formalni parametri so shranjeni na isti pomnilniški lokaciji. Zato je klic s sklicem nekoliko bolj učinkovit pri pomnilniku. |
Za informacije se obrnite na razlika med klicem po vrednosti in klicem po sklicu
6. Definirajte žeton v C++
Žeton je najmanjši posamezni element programa, ki ga razume prevajalnik. Žeton vsebuje naslednje:
- Ključne besede – Ki imajo poseben pomen za prevajalnik
- Identifikatorji – Ki imajo edinstveno vrednost/identiteto
- Konstante – Ki nikoli ne spremenijo svoje vrednosti v celotnem programu
- Strune – Ki vsebuje homogeno zaporedje podatkov
- Posebni simboli – Imajo poseben pomen in jih ni mogoče uporabiti za drug namen; npr.: [] () {}, ; * = #
- Operaterji – Kdo izvaja operacije na operandu
Za več informacij glejte Žetoni v C++
7. Kakšna je razlika med C in C++?
C | C++ |
|---|---|
| Je proceduralni programski jezik. Preprosto povedano, ne podpira razredov in objektov | Je mešanica postopkovnih in objektno usmerjenih programskih jezikov. Preprosto povedano, podpira razrede in objekte. |
| Ne podpira nobenih konceptov OOP, kot so polimorfizem, abstrakcija podatkov, enkapsulacija, razredi in objekti. | Podpira vse koncepte podatkov |
| Ne podpira preobremenitve funkcij in operaterjev | Podpira preobremenitev funkcij in operaterjev |
| Je jezik, ki ga poganjajo funkcije | Je objektno voden jezik |
Za več informacij glejte Razlika med C in C++
8. Kakšna je razlika med strukturo in razredom?
Struct | Razred |
|---|---|
| Člani strukture so vedno privzeto javni način | Člani razreda so lahko v zasebnem, zaščitenem in javnem načinu. |
| Strukture so vrednostnega tipa. Vrednost imajo samo v spominu. | Razredi so referenčnega tipa. Vsebuje referenco predmeta v pomnilniku. |
| Pomnilnik v strukturah je shranjen kot skladi | Pomnilnik v razredih je shranjen kot kopice. |
Za več informacij glejte Razlika med strukturo in razredom.
9. Kakšna je razlika med referenco in kazalcem?
Referenca java graditelj nizov | Kazalec |
|---|---|
| Vrednosti reference ni mogoče ponovno dodeliti | Vrednost kazalca je mogoče znova dodeliti |
| Nikoli ne more zadržati a nič vrednost, saj potrebuje obstoječo vrednost, da postane vzdevek | Lahko drži ali kaže na a nič vrednost in jo označimo kot a nullptr oz ničelni kazalec |
| Ne more delovati z nizi | Lahko deluje z nizi |
| Za dostop do članov razreda/strukture uporablja ' . ' | Za dostop do članov razreda/strukture uporablja ' -> ' |
| Do referenčne pomnilniške lokacije je mogoče preprosto dostopati ali pa jo uporabiti neposredno | Do pomnilniške lokacije kazalca ni mogoče zlahka dostopati, saj moramo uporabiti dereferenco ' * ' |
Za več informacij glejte Razlika med referenco in kazalcem
10. Kakšna je razlika med preobremenitvijo funkcije in preobremenitvijo operaterja?
Preobremenitev funkcij | Preobremenitev operaterja |
|---|---|
| V bistvu je definiranje funkcije na številne načine, tako da obstaja veliko načinov za klic ali preprosto povedano, imate več različic iste funkcije | V bistvu gre za prakso dajanja posebnega pomena obstoječemu pomenu operatorja ali, preprosto povedano, redefiniranje vnaprej redefiniranega pomena |
| Parametrizirane funkcije so dober primer preobremenitve funkcij, saj samo s spremembo argumenta ali parametra funkcije postane uporabna za različne namene. | Polimorfizem je dober primer preobremenitve operatorja, saj lahko objekt razreda dodelitev uporabljajo in kličejo različni razredi za različne namene. |
Primer preobremenitve funkcij:
| Primer preobremenitve operaterja:
|
Za več informacij glejte Preobremenitev operaterja in Preobremenitev funkcij
11. Kakšna je razlika med matriko in seznamom?
Nizi | Seznami |
|---|---|
| Niz je sosednja pomnilniška mesta homogenih tipov podatkov, shranjenih na fiksni lokaciji ali velikosti. | Seznami so klasični posamezni elementi, ki so med seboj povezani ali povezani s pomočjo kazalcev in nimajo določene velikosti. |
| Nizi so statične narave. | Seznami so po naravi dinamični |
| Porabi manj pomnilnika kot povezani seznami. | Uporablja več pomnilnika, saj mora shraniti vrednost in pomnilniško lokacijo kazalca |
Za več informacij glejte Nizi proti seznamu
12. Kakšna je razlika med zanko while in zanko do-while?
Medtem ko Loop | do-while Loop |
|---|---|
| Medtem ko se zanka imenuje tudi vstopno nadzorovana zanka | Zanka do-while se imenuje izhodna kontrolna zanka |
| Če pogoj ni izpolnjen, se stavki znotraj zanke ne bodo izvedli | Tudi če pogoj ni izpolnjen, se bodo stavke znotraj zanke izvajale vsaj enkrat |
Primer zanke medtem: medtem ko (pogoj) {izjave za izvedbo;}; | Primer zanke do-while: narediti { izjave, ki jih je treba izvršiti; } medtem ko(pogoj ali izraz); |
Za več informacij glejte Razlika med zanko while in do-while
13. Pogovorite se o razliki med predpono in postfiksom?
predpono | postfiks |
|---|---|
| To preprosto pomeni, da operator postavite pred operand | To preprosto pomeni, da operator postavite za operandom |
| Izvrši se prej '; ' | Po tem se izvede sam '; ' |
| Asociativnost predpone ++ je od desne proti levi | Asociativnost postfiksa ++ je od leve proti desni |
Za več informacij glejte Razlika med predpono in postfiksom
14. Kakšna je razlika med new in malloc()?
novo | malloc() |
|---|---|
| new je operater, ki izvede operacijo | malloc je funkcija, ki vrača in sprejema vrednosti |
| new kliče konstruktorje | malloc ne more klicati konstruktorja |
| new je hitrejši od malloc, saj je operater | malloc je počasnejši od novega, saj je funkcija |
| new vrne točno vrsto podatkov | malloc vrne prazno* |
Za več informacij glejte Razlika med new in malloc()
javanski niz je prazen
15. Kakšna je razlika med virtualnimi funkcijami in čisto virtualnimi funkcijami?
Virtualna funkcija | Čista virtualna funkcija |
|---|---|
| Navidezna funkcija je funkcija članica osnovnega razreda, ki jo je mogoče na novo definirati v drugem izpeljanem razredu. | Čista virtualna funkcija je funkcija članica osnovnega razreda, ki je samo deklarirana v osnovnem razredu in definirana v izpeljanem razredu, da prepreči, da bi postala abstrakten razred. |
| Virtualna funkcija ima svojo definicijo v ustreznem osnovnem razredu. | V Pure Virtual Function ni definicije in je inicializirana s čistim specifikatorjem (= 0). |
| Osnovni razred ima navidezno funkcijo, ki jo je mogoče predstaviti ali instancirati; Z enostavnimi besedami, njegov predmet je mogoče narediti. | Osnovni razred s čisto virtualno funkcijo postane abstrakten, ki ga ni mogoče predstaviti ali instancirati; Preprosto povedano, to pomeni, da njegovega predmeta ni mogoče narediti. |
Za več informacij glejte Razlika med virtualnimi funkcijami in čistimi virtualnimi funkcijami
16. Kaj so razredi in objekti v C++?
Razred je uporabniško definiran podatkovni tip, kjer so vse članske funkcije in podatkovni člani prilagojeni glede na zahteve in zahteve, poleg tega pa je do vseh teh mogoče dostopati s pomočjo predmet . Za deklaracijo uporabniško definiranega podatkovnega tipa uporabimo ključno besedo razred.
Objekt je primerek razreda in entitete z vrednostjo in stanjem; Preprosto povedano, uporablja se kot katalizator ali za predstavljanje člana razreda. Lahko vsebuje različne parametre ali nobenega.
Opomba: Razred je načrt, ki definira funkcije, ki jih uporablja objekt.
Za več informacij si oglejte to Kaj so razredi in objekti
17. Kaj je preglasitev funkcije?
Kadar se v izpeljanem razredu uporablja funkcija z enakim imenom, enakimi argumenti ali parametri in istim povratnim tipom, ki je že prisoten/deklariran v osnovnem razredu, se imenuje preglasitev funkcije. To je primer izvajalnega polimorfizma ali pozne vezave, kar pomeni, da bo preglasena funkcija izvedena v času izvajanja.
Za več informacij glejte Preglasitev funkcij v C++
18. Kateri so različni koncepti OOP v C++?
- Razredi : Je podatkovni tip, ki ga določi uporabnik
- Predmeti : Je primerek razreda
- Abstrakcija: Gre za tehniko prikaza le potrebnih podrobnosti
- Enkapsulacija: Ovijanje podatkov v eno samo enoto
- dedovanje: Sposobnost razreda, da izpelje lastnosti in karakteristike iz drugega razreda
- Polimorfizem: Polimorfizem je znan kot več oblik iste stvari
Za več informacij glejte Različni koncepti OOP v C++
19. Razloži dedovanje
Zmožnost ali zmožnost razreda, da izpelje lastnosti in karakteristike iz drugega razreda, je znana kot dedovanje. Preprosto povedano, gre za sistem ali tehniko ponovne uporabe in razširitve obstoječih razredov brez njihovega spreminjanja.
Za več informacij glejte Dedovanje
20. Kdaj naj uporabimo večkratno dedovanje?
Večkratno dedovanje pomeni, da lahko izpeljani razred podeduje dva ali več osnovnih/nadrejenih razredov. Uporaben je, kadar mora izpeljani razred združiti številne atribute/pogodbe in podedovati nekatere ali vse izvedbe iz teh atributov/pogodb. Za primer iz resničnega življenja razmislite o svojih starših, kjer je starš A vaš OČE, starš B je vaša MAMA, otrok C pa vi.

Večkratno dedovanje
Za več informacij glejte Večkratno dedovanje .
21. Kaj je virtualno dedovanje?
Navidezno dedovanje je tehnika, ki zagotavlja, da razredi, izpeljani iz vnukov, podedujejo samo eno kopijo spremenljivk člana osnovnega razreda. Ali preprosto povedano, navidezno dedovanje se uporablja, ko imamo opravka z več dedovanji, vendar želimo preprečiti, da bi se več primerkov istega razreda pojavilo v hierarhiji dedovanja.
22. Kaj je polimorfizem v C++?
Polimorfizem je znan kot več oblik iste stvari. Preprosto povedano, lahko rečemo, da je polimorfizem zmožnost prikaza funkcije člana v več oblikah, odvisno od vrste predmeta, ki jih kliče.
Z drugimi besedami, lahko tudi rečemo, da je človek lahko nekomu uslužbenec, nekomu sin, nekomu oče in nekomu mož; tako se lahko polimorfizem projicira v resničnem življenju.
Obstajata 2 vrsti polimorfizma:
- Časovni polimorfizem prevajanja
- Preobremenitev funkcij
- Preobremenitev operaterja
- Polimorfizem izvajalnega časa
- Preglasitev funkcije
- Virtualna funkcija
Če želite izvedeti več o tem, glejte Polimorfizem
23. Katere so različne vrste polimorfizma v C++?
Obstajata 2 vrsti polimorfizma
Časovni polimorfizem prevajanja ali statična vezava
Ta vrsta polimorfizma je dosežena med časom prevajanja programa, zaradi česar je nekoliko hitrejši od časa izvajanja. Prav tako dedovanje ni vključeno v to. Sestavljen je iz 2 nadaljnji tehniki :
Preobremenitev funkcij: Če obstaja več funkcij z istim imenom, vendar različnimi parametri, je to znano kot preobremenitev funkcij.
C++ // same name different arguments int GFG() {} int GFG(int a) {} float GFG(double a) {} int GFG(int a, double b) {}>
Preobremenitev operaterja: V bistvu gre za prakso dajanja posebnega pomena obstoječemu pomenu operatorja ali, preprosto povedano, redefiniranje vnaprej redefiniranega pomena
class GFG { // private and other modes statements public returnType operator symbol(arguments){ statements } statements };>
Polimorfizem med izvajanjem ali pozna vezava
Polimorfizem izvajalnega časa se pojavi, ko so funkcije priklicane med izvajanjem.
Preglasitev funkcije: Do preglasitve funkcije pride, ko je funkcija člana osnovnega razreda na novo definirana v izpeljanem razredu z enakimi argumenti in vrnjenim tipom.
// 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; }> Izhod:
Function of derived class>
Za več informacij glejte Različne vrste polimorfizma
24. Primerjajte polimorfizem med prevajanjem in polimorfizem izvajalnega okolja
Polimorfizem med prevajanjem | Polimorfizem izvajalnega okolja |
|---|---|
| Imenuje se tudi statična vezava in zgodnja vezava. | Imenuje se tudi dinamična vezava in pozna vezava. |
| Je hiter, ker je izvajanje znano zgodaj v času prevajanja. | V primerjavi s časom prevajanja je počasen, ker je izvajanje znano med izvajanjem. |
| Doseže se s preobremenitvijo funkcij in preobremenitvijo operaterja. | To se doseže z virtualnimi funkcijami in preglasitvijo funkcij. |
Za več informacij glejte Polimorfizem med prevajanjem in polimorfizem med izvajanjem
java zamenja znak v nizu
25. Razložite konstruktor v C++.
Konstruktor je posebna vrsta funkcije člana razreda, katere ime je enako imenu razreda, ki ga prikliče in inicializira vrednost objektu razreda.
Obstajajo 3 vrste konstruktorjev:
A. Privzeti konstruktor: Je najbolj osnovna vrsta konstruktorja, ki ne sprejema nobenih argumentov ali parametrov. Tudi če ni poklican, ga prevajalnik samodejno pokliče, ko je objekt ustvarjen.
primer:
C++ class Class_name { public: Class_name() { cout << 'I am a default constructor'; } };>
B. Parametrizirani konstruktor: Je vrsta konstruktorja, ki sprejema argumente ali parametre. Poklicati ga je treba izrecno s posredovanjem vrednosti v argumentih, saj ti argumenti pomagajo inicializirati predmet, ko je ustvarjen. Ima tudi isto ime kot razred.
Uporablja se tudi za preobremenitev konstruktorjev.
primer:
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; }> Izhod
G.x = 10, G.y = 15>
C. Konstruktor kopiranja: Konstruktor kopiranja je funkcija članica, ki inicializira objekt z uporabo drugega objekta istega razreda. Poleg tega konstruktor kopiranja vzame sklic na objekt istega razreda kot argument.
primer:
C++ Sample(Sample& t) { id = t.id; }>
Za več informacij glejte Konstruktorji
26. Kaj so destruktorji v C++?
Destruktorji so člani funkcij v razredu, ki izbrišejo objekt, ko gre objekt razreda izven obsega. Destruktorji imajo isto ime kot razred, pred katerim je znak tilda (~). Tudi destruktorji sledijo a od spodaj navzgor pristop, za razliko od konstruktorjev, ki sledijo od zgoraj navzdol.
Sintaksa:
~constructor_name(); // tilde sign signifies that it is a destructor>
Za več informacij glejte Uničevalec .
27. Kaj je virtualni destruktor?
Pri uničevanju primerkov ali objektov izpeljanega razreda z uporabo kazalnega predmeta osnovnega razreda se prikliče navidezni destruktor, da sprosti pomnilniški prostor, ki ga dodeli objekt ali primerek izpeljanega razreda.
Virtualni destruktor zagotavlja, da se najprej pokliče destruktor izpeljanega razreda. Nato se kliče destruktor osnovnega razreda, da sprosti prostor, ki ga zasedata oba destruktorja v razredu dedovanja, kar nas reši pred uhajanjem pomnilnika. Priporočljivo je, da svoj destruktor naredite virtualnega, kadar koli je vaš razred polimorfen.
Za več informacij glejte Virtualni uničevalec
28. Ali je možna preobremenitev destruktorja? Če da, potem pojasnite in če ne, zakaj?
Preprost odgovor je št destruktorja ne moremo preobremeniti. V C++ je obvezen le destructor na razred. Naj omenim tudi, da Destructor niti ne sprejema argumentov niti nima parametra, ki bi lahko pomagal pri preobremenitvi.
Vprašanja za intervju C++ – srednja raven
29. Katere operacije so dovoljene na kazalcih?
Kazalci so spremenljivke, ki se uporabljajo za shranjevanje lokacije naslova druge spremenljivke. Operacije, ki so dovoljene za kazalec, so:
- Povečanje/zmanjšanje kazalca
- Seštevanje in odštevanje celega števila na kazalec
- Primerjava kazalcev iste vrste
30. Kaj je namen izbrisati operater?
Operator za brisanje se uporablja za brisanje/odstranitev vseh značilnosti/lastnosti predmeta s sprostitvijo njegovega pomnilnika; poleg tega na koncu vrne true ali false. Preprosto povedano, uniči ali sprosti matrične in nematrične objekte (kazalec), ki so ustvarjeni z novimi izrazi.
C++ int GFG = new int[100]; // uses GFG for deletion delete[] GFG;>
Za več informacij glejte Izbriši operaterja
31. Kako se delete [] razlikuje od delete?
izbrisati[] | izbrisati |
|---|---|
| Uporablja se za brisanje cele matrike | Uporablja se za brisanje samo enega samega kazalca |
| Uporablja se za brisanje predmetov novo []; S tem lahko rečemo, da izbrisati[] se uporablja za brisanje niza predmetov | Uporablja se za brisanje predmetov novo; S tem lahko rečemo, da izbrisati se uporablja za brisanje posameznega predmeta |
| Pokliče lahko poljubno število destruktorjev | Destruktor razreda lahko pokliče le enkrat |
32. Kaj veš o prijateljskem razredu in funkciji prijatelja?
Prijateljski razred je razred, ki lahko dostopa do zaščitenih in zasebnih spremenljivk razredov, kjer je deklariran kot prijatelj.
Primer razreda prijatelja:
string.replaceall v JaviC++
class Class_1st { // ClassB is a friend class of ClassA friend class Class_2nd; statements; } class Class_2nd { statements; }>
Prijateljska funkcija je funkcija, ki se uporablja za dostop do zasebnih, zaščitenih in javnih podatkovnih članov ali članskih funkcij drugih razredov. Naveden je s ključno besedo prijatelja. Prednost funkcije prijatelja je, da ni vezana na obseg razreda in ko je deklarirana v razredu, poleg tega je ne more klicati objekt razreda; zato ga lahko kličejo druge funkcije. Glede na vse omenjene točke lahko rečemo, da je funkcija prijatelja globalna funkcija .
Primer funkcije prijatelja:
C++ class GFG { statements; friend dataype function_Name(arguments); statements; } OR class GFG { statements' friend int divide(10, 5); statements; }>
Za več informacij glejte prijateljska funkcija in prijateljski razred
33. Kaj je napaka prelivanja?
Napaka prelivanja se pojavi, ko je število preveliko, da bi ga vrsta podatkov lahko obravnavala. Preprosto povedano, gre za vrsto napake, ki velja za definirano, vendar presega uporabljeno definirano območje, kjer bi morala sovpadati/ležati.
Na primer, obseg podatkovnega tipa int je –2.147.483.648 do 2.147.483.647 in če deklariramo spremenljivko velikosti 2.247.483.648 ustvaril bo napako prelivanja.
34. Kaj počne operater Scope Resolution?
Operator razrešitve obsega je označen z ' :: ' simbol. Tako kot njegovo ime ta operater razreši oviro obsega v programu. Operator ločljivosti obsega se uporablja za sklicevanje na funkcijo članice ali globalno spremenljivko zunaj njihovega obsega, do katere lahko dostopa tudi do skrite spremenljivke ali funkcije v programu.
Scope Resolution se uporablja za številne naloge:
- Za dostop do globalne spremenljivke, ko obstaja lokalna spremenljivka z istim imenom
- Za definiranje funkcije zunaj razreda
- V primeru večkratnega dedovanja
- Za imenski prostor
Za več informacij glejte Operator ločljivosti obsega
35. Kaj so modifikatorji dostopa C++?
Omejitev dostopa, določena za člane razreda (ne glede na to, ali gre za funkcijo člana ali podatkovnega člana), je znana kot modifikatorji/specifikatorji dostopa.
Modifikatorji dostopa so 3 vrst:
- Zasebno – Do njega ni mogoče niti dostopati niti ga gledati zunaj razreda
- Zaščiteno – Do njega je mogoče dostopati, če in samo če je dostopnik izpeljani razred
- Javno – Do njega lahko dostopate ali si ga ogledate zunaj razreda
Za več informacij glejte Modifikatorji dostopa
36. Ali lahko prevedete program brez glavne funkcije?
Da, absolutno je mogoče prevesti program brez main(). Na primer Uporabite makre, ki definirajo glavno
C++ // C++ program to demonstrate the // a program without main() #include #define fun main int fun(void) { printf('Geeksforgeeks'); return 0; }> Za več informacij glejte Ali lahko prevedete program brez glavne funkcije
37. Kaj je STL?
STL je znan kot standardna knjižnica predlog, je knjižnica, ki ponuja 4 komponente, kot so vsebnik, algoritmi in iteratorji.

C++ STL
Za več informacij glejte STL v C++
38. Definirajte inline funkcijo. Ali lahko imamo rekurzivno inline funkcijo v C++?
Vgrajena funkcija je oblika zahteve in ne naročila prevajalniku, kar ima za posledico vdelavo naše funkcije v glavno telo funkcije. Funkcija v vrstici lahko postane prevelika, če je čas izvajanja funkcije krajši od časa preklopa s funkcije klicatelja na klicano funkcijo. Če želite narediti funkcijo inline, uporabite ključno besedo v vrsti pred in definirajte funkcijo, preden se funkcija kliče.

Razlaga funkcije v vrstici
Sintaksa:
inline data_type function_name() { Body; }>Odgovor je ne; Ne more biti rekurziven.
Funkcija v vrstici ne more biti rekurzivna, ker je v primeru funkcije v vrstici koda le postavljena na mesto, od koder je klicana, in ne vzdržuje podatka v skladu, ki je potreben za rekurzijo.
niz formata java
Poleg tega, če napišete vstavljeno ključno besedo pred rekurzivno funkcijo, jo bo prevajalnik samodejno prezrl, ker prevajalnik vzame vstavljeno besedo samo kot predlog.
Za več informacij glejte Vgrajena funkcija
39. Kaj je abstraktni razred in kdaj ga uporabljate?
Abstraktni razred je razred, ki je posebej zasnovan za uporabo kot osnovni razred. Abstraktni razred vsebuje vsaj eno čisto virtualno funkcijo. Čisto virtualno funkcijo deklarirate z uporabo a čisti specifikator (= 0) v deklaraciji navidezne funkcije člana v deklaraciji razreda
Abstraktnega razreda ne morete uporabiti kot tip parametra, tip vrnitve funkcije ali tip eksplicitne pretvorbe, niti ne morete deklarirati objekta abstraktnega razreda. Lahko pa se uporablja za deklariranje kazalcev in sklicev na abstraktni razred.
Abstraktni razred se uporablja, če želite zagotoviti skupno implementirano funkcionalnost med vsemi implementacijami komponente. Abstraktni razredi vam bodo omogočili delno implementacijo vašega razreda, medtem ko vmesniki ne bi imeli implementacije za noben član. Preprosto povedano, abstraktni razredi so primerni, če želite svojim otrokom zagotoviti podrobnosti o izvedbi, vendar ne želite dovoliti, da se primerek vašega razreda neposredno ustvari.
40. Kaj so statični podatkovni člani in statične članske funkcije?
Statični podatkovni član razreda je običajen podatkovni član, vendar pred njim stoji statična ključna beseda. Izvede se pred main() v programu in se inicializira na 0, ko je ustvarjen prvi objekt razreda. Viden je samo definiranemu razredu, vendar je njegov obseg doživljenjski.
Sintaksa:
static Data_Type Data_Member;>
Statična članska funkcija je članska funkcija, ki se uporablja za dostop do drugih statičnih podatkovnih članov ali drugih statičnih članskih funkcij. Definiran je tudi s ključno besedo static. Do statične funkcije člana lahko dostopamo z uporabo imena razreda ali objektov razreda.
Sintaksa:
classname::function name(parameter);>
Vprašanja za intervju C++ – strokovna raven
41. Kakšna je glavna uporaba ključne besede Volatile?
Tako kot ime se lahko stvari spremenijo nenadoma in nepričakovano; Zato se uporablja za obveščanje prevajalnika, da se lahko vrednost kadar koli spremeni. Poleg tega ključna beseda volatile prevajalniku preprečuje izvedbo optimizacije kode. Namenjen je bil uporabi pri povezovanju s pomnilniško preslikano strojno opremo, napravami za obravnavo signalov in navodili strojne kode.
Za več informacij si oglejte to Hlapljivo
42. Definirajte pomnilniški razred v C++ in ga poimenujte
Razred shranjevanja se uporablja za definiranje funkcij (življenjska doba in vidnost) spremenljivke ali funkcije. Te funkcije običajno pomagajo pri sledenju obstoja spremenljivke med izvajanjem programa.
Sintaksa:
storage_class var_data_type var_name;>
Nekatere vrste razredov za shranjevanje:

Primeri razreda shranjevanja
Za več informacij glejte Razred shranjevanja
43. Kaj je specifikator spremenljivega pomnilniškega razreda? Kako jih je mogoče uporabiti?
Tako kot njegovo ime se spremenljivi specifikator razreda pomnilnika uporablja samo na podatkovnem članu razreda, da ga je mogoče spreminjati, čeprav je član del objekta, deklariranega kot const. Statični ali const ali referenčni člani ne morejo uporabljati spremenljivega specifikatorja. Ko deklariramo funkcijo kot const, ta kazalec, posredovan funkciji, postane const.
44. Definirajte spremenljivko Block scope.
Obseg spremenljivke je torej območje, kjer je spremenljivka dostopna. Obstajata dve regiji obsega, globalna in blokovna ali lokalna.
Spremenljivka obsega bloka je znana tudi kot spremenljivka lokalnega obsega. Spremenljivka, ki je definirana znotraj funkcije (na primer main) ali znotraj bloka (na primer zanke in if bloki), je lokalna spremenljivka. Uporablja se lahko SAMO znotraj določene funkcije/bloka, v katerem je deklariran. spremenljivka z obsegom bloka ne bo na voljo zunaj bloka, tudi če je blok znotraj funkcije.
Za več informacij glejte Obseg spremenljivke
45. Kakšna je funkcija ključne besede Auto?
Ključno besedo auto lahko uporabite za deklaracijo spremenljivke s kompleksnim tipom na preprost način. Za deklaracijo spremenljivke lahko uporabite auto, če inicializacijski stavek vsebuje predloge, kazalce na funkcije, sklice na člane itd. Z zmožnostmi sklepanja o tipih lahko porabimo manj časa za pisanje stvari, ki jih prevajalnik že pozna. Ker se vse vrste izpeljejo samo v fazi prevajalnika, se čas prevajanja nekoliko poveča, vendar to ne vpliva na čas izvajanja programa.
Za več informacij glejte Avtomobili v C++
46. Definirajte imenski prostor v C++.
Imenski prostori nam omogočajo organiziranje poimenovanih elementov, ki bi sicer imeli globalni obseg, v manjše obsege, kar nam omogoča, da jim dodelimo obseg imenskega prostora. To omogoča, da so deli programa organizirani v ločena logična področja z imeni. Imenski prostor nudi prostor za definiranje ali deklaracijo identifikatorjev, kot so spremenljivke, metode in razredi.
Lahko pa bi rekli, da je imenski prostor deklarativno območje, ki identifikatorjem (imenom tipov, funkcij, spremenljivk itd.) znotraj njega daje obseg. Imenski prostori se uporabljajo za razvrščanje kode v logične kategorije in za preprečevanje navzkrižij imen, do katerih lahko pride, če imate v svoji kodni bazi veliko knjižnic.
Za več informacij glejte Imenski prostor v C++
47. Kdaj se uporablja povratni tip void()?
Ključna beseda void, če je uporabljena kot vrnjena vrsta funkcije, nakazuje, da funkcija ne vrne vrednosti. Ko se uporablja kot seznam parametrov za funkcijo, void označuje, da funkcija ne sprejema parametrov. Funkcije, ki ne vračajo vrednosti, so znane tudi kot neveljavne funkcije. Imenujejo se nični, ker niso zasnovani za vračanje ničesar. Res je, a le delno. Ne moremo vrniti vrednosti iz void funkcij, vsekakor pa lahko nekaj vrnemo. Čeprav funkcije void nimajo vrnjenega tipa, lahko vrnejo vrednosti.
Za več informacij glejte Vrsta vrnitve Void .
48. Kakšna je razlika med plitvo in globoko kopijo?
Plitka kopija | Globoka kopija |
|---|---|
| V plitvi kopiji je shranjena kopija izvirnega predmeta in na koncu se kopira samo referenčni naslov. Preprosto povedano, Shallow copy se podvaja čim manj | V globoki kopiji so shranjene kopija izvirnega predmeta in ponavljajoče se kopije. Preprosto povedano, Deep copy podvaja vse |
| Plitka kopija zbirke je kopija strukture zbirke, ne elementov. S plitvo kopijo si zdaj dve zbirki delita posamezne elemente. | Globoka kopija zbirke sta dve zbirki z vsemi elementi v izvirni zbirki podvojenimi. |
| Plitka kopija je hitrejša | Globoko kopiranje je sorazmerno počasnejše. |
Za več informacij glejte Plitka kopija VS globoka kopija
49. Ali lahko navidezno funkcijo prikličemo iz konstruktorja?
Da, virtualno funkcijo lahko pokličemo iz konstruktorja. Lahko pa povzroči izjemo preglasitve.
50. Kaj so prazni kazalci?
Tako kot njegovo ime je void pointer kazalec, ki ni povezan z ničemer ali z nobenim tipom podatkov. Kljub temu lahko prazen kazalec vsebuje vrednost naslova katere koli vrste in se lahko pretvori iz enega podatkovnega tipa v drugega.
Za več se informacije nanašajo na Kazalec praznine v C++
Dodatno vprašanje:
kaj je ' to ' kazalec v C++?
to kazalec omogoča vsakemu objektu dostop do lastnega naslova prek bistvenega kazalca. Vse članske funkcije prevzamejo to kazalec kot implicitni argument. to kazalec se lahko uporablja za sklicevanje na klicni objekt znotraj funkcije članice.
- to kazalec se uporablja za posredovanje objekta kot parametra drugi metodi.
- Vsak objekt dobi svojo kopijo podatkovnega člana.
- to kazalec se uporablja za deklariranje indekserjev.
Za več informacij glejte to kazalec v C++