C++ के 35 इंटरव्यू प्रश्न और उत्तर | 35 important c++ interview, viva questions in hindi

C++ के प्रश्न और उत्तर, C++ interview questions and answers in hindi, [C++ mcq, viva questions], BCA के notes, computer notes, C++ notes, कंप्यूटर notes, C++ question pdf, C++ के mcq, C++ के नए प्रश्न, C++ for fresher, C++ for experienced, btech computer notes in hindi.
क्या आप भी C++ language में आगे बनना चाहते है, और इसके लिए इंटरव्यू की तैयारियों में लगे हुए है? या फिर आप एक student है, जो अपने C++ language के concept को काफी मजबूत करना चाहते है, और इसमें और अच्छा बनना चाहते है?
इन दोनों में से आप भी कोई भी क्यों ना हो,आज आप बिल्कल सही जगह पे आए है, जहाँ हम C++ language से समन्धित कुछ ऐसे topics के बारे में जानने वाले है, जो अमूमन interview या किसी viva में पूछे जाते आए है।
यहां, हर एक interview के साथ ही बड़ी कंपनियों में भी पूछे जाने वाले वास्तविक प्रश्न मिलेंगे, जो आपकी तैयारियों को और भी ज्यादा मजबूत करेंगे। और साथ ही यहाँ हर एक प्रश्न के साथ उसके उत्तर भी दिए गए है, ताकि तैयारी के समय की बचत हो सके।
यह आर्टिकल आपको अपने C++ language के कौशल को और ज्यादा साफ़ करने और अपना आत्मविश्वास वापस पाने और किसी नौकरी के लिए तैयार होने में काफी मदद करेगी। साथ ही यह उन छात्रों की भी काफी ज्यादा मदद करेगी जो, इस विषय में अपने ज्ञान को और बढ़ाना चाहते है।
तो आइये अब हम जानते है,ऐसे ही प्रश्नों के बारे में जो experts और teacher द्वारा इस विषय में काफी ज्यादा पूछे जाते है –
C++ language क्या है? (What is c++ in hindi)
यह एक काफी शक्तिशाली और all-purpose प्रोग्रामिंग language है, जिसे Bell Labs में “Bjarne Stroustrup” द्वारा विकसित किया गया था, और यह C language का extension यानि की विस्तार है। साथ ही C++ language सबसे तेज object-oriented programming (OOP) भाषाओं में से एक है, जो की अपनी उच्च गति और अनुकूलता, यानि की compatibility के लिए काफी जाना जाता है।
C++ language का ज्यादातर इस्तेमाल कहा किया जाता है?
आज इस प्रोग्रामिंग language का ज्यादातर इस्तेमाल games और servers के development में किया जाता है। इनसब से अलावा भी c++ language कई तरह के systems को बनाने में काम आता है, जैसे की –
- Operating systems.
- Banking के applications.
- Database से समन्धित softwares.
- Advanced graphics
- GUI आधारित applications. आदि।
C और C++ में क्या अंतर है?
C और C++ प्रोग्रामिंग भाषाओ में कई तरह के अंतर होते है, जैसे की –
C language | C++ language |
यह एक procedure-oriented programming language है। | यह एक object-oriented programming language है। |
C, C++ का subset है। | C++, C का superset है। |
यह डेटा hiding को सपोर्ट नही करता। | यह encapsulation की मदद से डेटा hiding को सपोर्ट करता है। |
इसमें functions structures के अंदर defined नही होते। | इसमें functions structures के अंदर defined होते है। |
यह function और operator overloading को सपोर्ट नही करता। | यह function और operator overloading को सपोर्ट करता है। |
C में Namespace features मौजूद नही होता है। | C++ में Namespace features मौजूद होता है। |
C++ को इस्तेमाल करने के क्या-क्या फायदे है? (Advantages of c++ in hindi)
C++ language को इस्तेमाल करने के कई तरह के फायदे होते है, जिनमे से कुछ है –
- यह एक object oriented प्रोग्रामिंग (OOP) को सपोर्ट करने वाली कंप्यूटर भाषा है, जिसमे class, objects, polymorphism, आदि जैसे features मौजूद होते है।
- यह एक highly portable language है, जिसका यह मतलब है की, c++ का इस्तेमाल कर बनाये गए एप्लीकेशन किसी भी platform पर चल सकते है।
- यह inheritance का इस्तेमाल करती है, जिसकी मदद में redundant कोड को हटाया जा सकता है, और साथ ही कोड का reuse भी किया जा सकता है।
- डेटा hiding features की मदद से programmers इस language में सुरक्षित programs बना सकते है, जो की किसी बाहरी attack से बचे रह सकते है।
- साथ ही C++ language काफी rich function library भी मुहैया करवाता है। आदि।
Class और object क्या होते है?
यह एक यूजर defined डेटा type होता है, जिसे “class” keyword का इस्तेमाल करके declare किया जाता है। क्लास के अंदर data members और member functions मौजूद होते है, जिन्हें public, private और protected modifiers की मदद से क्लास के बाहर access किया जाता है। और क्लास सिर्फ किसी डेटा के structure को define करता है, ना की किसी डेटा को।
Class किसी blueprint की तरह होता है, जिसमे सारे designs मौजूद होते है, वही object उसी design से बना एक मान होता है। और हर object के लिए क्लास की एक आग copy तैयार होती है। और हम एक क्लास से कितने भी objects तैयार कर सकते है। इसका structure कुछ ऐसा होता है –
class A {
private: int data;
public: void fun(){
}
};
C++ में OOPs के अलग-अलग concepts क्या-क्या है?
C++ language में OOPs के concepts है –
- Class
- Object
- Inheritance
- Encapsulation
- Abstraction
- Polymorphism
- Data binding
C++ में Abstraction क्या होता है?
Abstraction एक तरह की तकनीक होती है, जिसकी मदद से प्रोग्राम मे मौजूद सिर्फ जरुरी चीजों को ही सामने दिखाया जाता है, ना की उनके implementation को। अगर क्लास के अंदर मौजूद members, “public” keyword के साथ define किये गए है, तो सिफ तभी वे क्लास के बाहर भी access किए जा सकते है। और क्लास के अंदर मौजूद members, “private” keyword के साथ define किये गए है, तो उन्हें क्लास के बाहर access नही किया जा सकता।
Encapsulation किसे कहा जाता है?
यह data members और member functions को एक ही यूनिट में wrap करके रखने की तकनीक होती है। यह डेटा को किसी एक क्लास के अंदर bind करने रखती है, और जिस कारण कोई भी बाहरी method उस डेटा को access नही कर सकता। और अगर डेटा member “private” है, तो सिफ उस क्लास के member functions ही उस डेटा को इस्तेमाल के सकते है।
C++ में polymorphism क्या है?
इसका आर्थ होता है, एक ही नाम के एक से अधिक functions जिन्हें, अलग-अलग कामों के लिए इस्तेमाल किया जाये। और C++ में यह दो प्रकार के होते है, जो की है –
- Compile Time Polymorphism – इसे dynamic polymorphism के नाम से भी जाना जाता है। और function overriding इसका एक उदहारण है।
- Runtime Polymorphism – इसे static polymorphism के नाम से भी जना जाता है। और Method overloading इसका एक उदहारण है।
Inheritance का मतलब क्या होता है?
इसका आर्थ होता है, reusability जिसमे की हम पहले से मौजूद कोड को दोबारा से इस्तेमाल कर सकते है। इसकी मदद से हम एक क्लास में मौजूद डेटा members और functions को दूसरे क्लास में भी अपने काम के अनुसार आसानी से इस्तेमाल कर सकता है, और इसीलिए यह कोड redundancy को ख़त्म करती है।
जिस क्लास से कोड को दोबारा इस्तेमाल के लिए लिया जाता है, उसे “base class” कहते है, और जिस नए क्लास में यह कोड इस्तेमाल किया जाता है, उसे “derived class” कहा जाता है।
C++ में Data binding क्या होता है?
Data binding किसी एप्लीकेशन के UI यानि की user interface और business logic को एक साथ बांधे रखने का एक process होता है। और जिससे business logic में किया हुआ कोई भी बदलाव, सीधे एप्लीकेशन के UI में reflect होता है।
C++ में template क्या होता है?
C++ में template का इस्तेमाल data type को parameters के रूप में पास करने के लिए किया जाता है। और यह class और function के इस्तेमाल को और भी आसान बना देती है।
उदहारण के लिए – |
template <typename T> int fun (T a,T b) { return (a+b); } int main(){ cout<<fun<int>(11,22); } |
C++ में namespace क्या है?
- यह कोड के बिच में इस्तेमाल होने वाला एक तरह का logical division होता है, जो की naming conflict से बचने के लिए डिजाईन किया गया है।
- Namespace उस स्कोप को define करते है, जहा variables, class, functions, आदि को declare किये गए हो।
- इसका main उद्द्श्ये ambiguity यानि की अनिश्चितता को हटाना होता है, जो की तब उत्तपन होती है, जब एक ही नाम से कई सारे कामो को किया जाता है।
- C++ के पास खुदका standard namespace है, जिसमे inbuilt classes और functions शामिल है।
- इसीलिए “using namespace std;” statement का इस्तेमाल करके हम अपने प्रोग्राम में इसका इस्तेमाल कर सकते है। जैसे की –
namespace namespace_name
{
//body of namespace;
}
C++ में constructor क्या है?
- Constructor एक member function होता है, जो की तब खुद बा खुद execute हो जाता है, जब किसी object को create किया जाता है।
- constructor का नाम उसी class के नाम जैसा ही same होता है, जिसमे उसे declare किया जाता है, ताकि compiler को यह पता चल सके की member function एक constructor है ।
- और साथ ही इसमें कोई return type भी नही होता है।
इसका एक उदहारण है – |
class A{ private: int value; public: A(int x){ //one argument constructor value=x; } A() { //zero argument constructor }}int main(){ A a(7); return 0;} |
Destructor क्या होता है?
Destructor एक instance member function होता है, जो तब खुद बा खुद लागू हो जाता है, जब कोई object नष्ट किया जाये। और यह constructor द्वारा allocate किये गए memory space को ख़त्म करने के काम आता है। इसका syntax है –
~constructor-name () ;
साथ ही में इसकी कुछ properties भी होती है, जैसे की –
- किसी object के नष्ट होने पर यह खुद बा खुद invoke हो जाती है।
- इसे static नही बनाया जा सकता।
- इसमें कोई arguments पास नही कर सकते।
- साथ ही इसे किसी क्लास के public सेक्शन में भी declare नही कर सकते।
- कोई प्रोग्रामर किसी destructor के address को access नही कर सकते। आदि।
Compile time और and runtime polymorphism में क्या अंतर होता है?
Compile time polymorphism | Runtime polymorphism |
इस method में हमे compile time में जाकर यह पता चलता है, की कौन से functions कॉल होने वाले है। | इस method में हमे run time में जाकर यह पता चलता है, की कौन से functions कॉल होने वाले है। |
इसमें method call को compiler द्वारा हल किया जाता है। | इसमें method call को compiler द्वारा हल नही किया जाता है। |
यह तेज execute होता है, क्युकी इसमें compile time में ही method कॉल के बारे में पता चल जाता है। | Compile टाइम के मुकाबले इसका execution slow होता है, क्युकी इसमें run time में जाकर ही method कॉल के बारे में पता चलता है। |
इसे function और ऑपरेटर overloading के माध्यम से achieve किया जाता है। | इसे virtual functions और pointers के माध्यम से achieve किया जाता है। |
इसका एक उदहारण है – int add(int a, int b){ return a+b;}int add(int a, int b, int c){ return a+b+c;} int main(){ cout<<add(2,3)<<endl; cout<<add(2,3,4)<<endl; return 0;} | इसका एक उदहारण है – class base{ public: void fun(){ coût<<“base “; }};class derived: public base{ public: void fun(){ cout<<”derived ”; }};int main(){ A *a=new B; a->fun(); return 0;} |
Friend क्लास और friend function क्या होते है?
Friend क्लास एक तरह का class होता है, जो की दूसरे किसी क्लास में मौजूद private और protected members को भी access कर सकता है, जिन्हें “friend” keyword का इस्तेमाल कर declare किया गया हो। इसका syntax है –
class ClassB;
class ClassA {
// ClassB, ClassA का एक friend क्लास है
friend class ClassB;
… .. …
}
class ClassB {
… .. …
}
और ठीक क्लास की तरह ही friend function भी एक तरह का function होता है, जो की private और protected members को भी खुद में access कर सकता है। और यह दो तरह के हो सकते है, जैसे की –
- किसी दूसरे क्लास का member
- या एक global function
इसका एक उदहारण है – |
#include <iostream>using namespace std; class Distance { private: int meter; // friend function friend int addFive(Distance); public: Distance() : meter(0) {}}; // friend function का definitionint addFive(Distance d) { //friend function से private member का access d.meter += 5; return d.meter;}int main() { Distance D; cout << “Distance: ” << addFive(D); return 0;} |
C++ में access specifiers क्या-क्या है?
C++ language में लगभग तीन तरह के access specifiers का इस्तेमाल किया जाता है, जो की है-
Public – इसके तहत declare किये गए डेटा members और functions को खुद के क्लास के बाहर भी access किया जा सकता है।
Private – इसके तहत declare किये गए डेटा members और functions को खुद के क्लास के बाहर access नही किया जा सकता।
Protected – इसके तहत declare किये गए डेटा members और functions को सिर्फ खुद के class में और derived क्लास में access किया जा सकता है।
inline function क्या होता है?
यह एक तरह का function होता है, जिसे execute करते वक़्त compiler खुद में इसके कोड को copy करके रख लेता है, ताकि calling function में जाने के समय को बचाया जा सकते। Inline function में किये गए किसी भी बदलाव में इसे दोबारा recompiled करने की जरुरत होती है, क्युकी compiler को खुद में स्टोर किये गए सारे कोड को बदलने की आवश्यकता होती है। और ऐसा नही होने पर compiler में स्टोर पुराना कोड ही प्रोग्राम चलने के दौरान execute हो जायेगा।
इसका syntax है –
inline return_type function_name(parameters)
{
// function code?
}
C++ में call by value और call by reference का क्या मतलब होता ?
Call by value उस situation को कहा जाता है, जब हम parameters के माध्यम से किसी function को कॉल करते समय उसमे values पास करते है।
उदहारण के लिए – |
#include <iostream> using namespace std; void change(int data); int main() { int data = 3; change(data); cout << “Value of the data is: ” << data<< endl; return 0; } void change(int data) { data = 5; } |
OUTPUT |
Value of the data is: 3 |
वही जब किसी value की जगह हम parameters के माध्यम से functions में कोई address पास करते है, तब उसे call by reference कहा जाता है।
उदहारण के लिए – |
#include<iostream> using namespace std; void swap(int *x, int *y) { int swap; swap=*x; *x=*y; *y=swap; } int main() { int x=700, y=300; swap(&x, &y); // passing value to function cout<<“Value of x is: “<<x<<endl; cout<<“Value of y is: “<<y<<endl; return 0; } |
OUTPUT |
Value of x is: 300Value of y is: 700 |
Abstract class किसे कहते है, और इसका इस्तेमाल अब किया जाता है?
एक क्लास abstract क्लास तब कहलाता है, जब उसका कोई object कभी ना create किया गया हो। और यह क्लास derived class के एक parent क्लास की तरह मौजूद रहता है। और हम किसी class में एक pure virtual function रखकर उसे abstract class बना सकते है।
C++ में pointers किसे कहा जाता है?
Pointers वो variables होते है, जो दूसरे variables का address खुद में स्टोर कर सकते है। और दूसरे variables की तरह ही इनके भी data types होता है। जैसे की एक integer pointer में सिर्फ किसी एक integer variable का ही address स्टोर किया जा सकता है, आदि। इसका syntax होता है –
data_type *pointer_name;
इसके कुछ concept है – |
int *p, var // यहा “p” एक pointer variable है, और “var” एक normal variable है। p = &var; // यहा “p” में “var” के address को स्टोर किया जा रहा है। cout<<p; // यहा “p” में save “var” के address को प्रिंट करवाया जा रहा है। cout<<&var; // इससे तरीके से भी “var” के address को प्रिंट करवाया जा सकता है। |
आइये अब देखते है, pointer का इस्तेमक एक प्रोग्राम मे-
इसका एक उदहारण है – |
#include <iostream>using namespace std;int main(){ //Pointer declaration int *p, var=101; //Assignment p = &var; cout<<“Address of var: “<<&var<<endl; cout<<“Address of var: “<<p<<endl; cout<<“Address of p: “<<&p<<endl; cout<<“Value of var: “<<*p; return 0;} |
ऊपर दिए गए प्रोग्राम का output कुछ ऐसा होगा –
OUTPUT |
Address of var: 0x7fff5dfffc0cAddress of var: 0x7fff5dfffc0cAddress of p: 0x7fff5dfffc10Value of var: 101 |
Shallow copy और deep copy में क्या अंतर होता है?
Shallow copy | Deep copy |
यह किसी object के reference को उसके original memory address में स्टोर करता है। | यह किसी object के reference को स्टोर करने के लिए एक अलग और नया memory address तैयार करता है। |
जब copied object में किसी तरह का बदलाव होता है, तब shallow कॉपी उसे original object में भी reflect करता है। | जब copied object में किसी तरह का बदलाव होता है, तब deep कॉपी उसे original object में भी reflect नही करता है। |
यह काफी तेज होता है। | Shallow कॉपी के मुकाबले यह धीमा होता है। |
C++ में memory allocate और deallocate कैसे किया जाता है?
C++ language में memory allocate करने के लिए “new ” ऑपरेटर का इस्तेमाल किया जाता है, वही उसी memory को डिलीट यानि deallocate करने के लिए “deletes” ऑपरेटर का इस्तेमाल किया जाता है।
उदहारण के लिए – |
int value=new int; //यह 1 integer स्टोर करने के लिए memory allocate करेगा। delete value; // यह ऊपर लिए गए memory को deallocate करेगा। int *arr=new int[10]; // यह 10 integer स्टोर करने के लिए memory allocate करेगा। delete []arr; // यह ऊपर लिए गए memory को deallocate करेगा। |
Static member और function क्या होते है?
जब किसी variable को static declare किया जाता है, तब प्रोग्राम में उसके द्वारा लिए गया space हमेशा के लिए fix हो जाता है। और चाहे उस class का कितना भी object क्यों ना बनाया जाये, static member का सिर्फ एक ही कॉपी उस प्रोग्राम में मौजूद होगा। जिस कारण एक ही static member को सारे objects access कर पाएंगे।
वही, static function ऐसे function होते है, जिन्हें बिना किसी object के ही, सिर्फ उनके क्लास का नाम और स्कोप resolution ऑपरेटर (: 🙂 का इस्तेमाल करके ही access किया जा सकता है।
virtual function क्या होते है?
- यह वैसे functions होते है, जिन्हें किसी base क्लास में declare किया जाता है, मगर किसी derived क्लास में Overridden या re-defined किया जाता है।
- किसी function को एक virtual function बनाने के लिए base क्लास में इनके नाम के आगे “virtual” keyword का इस्तेमाल किया जाता है।
- Virtual functions यह सुनिश्चित करते है की, किसी object द्वारा सही function को कॉल किया जाए।
- इन्हें ज्यादातर runtime polymorphism को achieve करने के लिए इस्तेमाल किया जाता है।
इसके कुछ नियम होते है, जैसे की –
- Virtual functions कभी static नही हो सकते।
- यह किसी और क्लास का friend function हो सकता है।
- किसी virtual functions मूलरूप यानि की prototype base और derived क्लास में एक जैसा same होना चाहिए।
- किसी एक क्लास में virtual destructor मौजूद हो सकता है, मगर उसमे virtual constructor नही हो सकता। आदि।
C++ में किसी नंबर का factorial निकालने के लिए एक प्रोग्राम लिखे?
Factorial निकालने के इसके लिए प्रोग्राम है – |
#include <iostream> using namespace std; int fact(int n);int main() {int x, i;printf(“Enter a value for x: \n”);scanf(“%d” ,&x);i = fact(x);printf(“\n Factorial of %d is %d”, x, i);return 0;}int fact(int n){ if (n=1) {return (1);} else{return (n * fact(n – 1));}} |
ऊपर दिए गए प्रोग्राम में output होंगे –
INPUT | OUTPUT |
4 | 24 |
5 | 120 |
किसी temporary variable के बिना दो नंबर को swap करने का प्रोग्राम लिखे?
Swap करने के लिए प्रोग्राम है – |
#include <iostream> using namespace std; int main(){int a, b;printf(“En ter values of a and b: \n”);scanf(“%d %d”,&a,&b);printf(“Before swapping a=%d, b=%d\n”, a,b);/*Swapping logic */a = a + b;b = a – b;a = a – b;printf(“After swapping a=%d b=%d\n”, a, b);return 0;} |
। ।
FAQ (Frequently Asked Questions)
C++ language का अविष्कार किसने किया था?
C++ का अविष्कार साल 1985 में डेनिश कंप्यूटर वैज्ञानिक “Bjarne Stroustrup” द्वारा किया गया था।
किस प्रोग्रामिंग भाषा की खामियों के कारण c++ को बनाया गया था?
साल 1972 में तैयार हुए C language की कमियों को दूर करने के लिए C++ language की खोज की गयी थी।
C++ language में token किसे कहा जाता है?
Tokens keyword, literal, constant, identifier और symbols को कहा जाता है।
C++ में “std” क्या होता है?
“std” C++ में इस्तेमाल होने वाला एक default namespace होता है।
C++ में STL का क्या अर्थ होता है?
C++ में STL का अर्थ “Standard Template Library” होता है।
क्या C++ में destructor overloading हो सकता है?
नही, क्युकी destructor में कोई argument मौजूद नही होता, इसीलिए इसकी ओवरलोडिंग possible नही होती है।
आशा करता हूं कि आज आपलोंगों को कुछ नया सीखने को ज़रूर मिला होगा। अगर आज आपने कुछ नया सीखा तो हमारे बाकी के आर्टिकल्स को भी ज़रूर पढ़ें ताकि आपको ऱोज कुछ न कुछ नया सीखने को मिले, और इस articleको अपने दोस्तों और जान पहचान वालो के साथ ज़रूर share करे जिन्हें इसकी जरूरत हो। धन्यवाद।