C++
C++
Answers in 2024
By Great Learning Editorial Team / Updated on Nov 13, 2024 / Published on Nov 8, 2023
Table of contents
C++ programming is a general-purpose programming language that was created by Bjarne Stroustrup. It is essential to know
C++ if you want to work in the software development domain. C++ is an extension of the C programming language. The first
set of c++ interview questions is curated for freshers and talks about the basic c++ interview questions.
Great Learning has curated a list of the top 20 frequently asked c++ interview questions; they are:
This C++ interview questions blog is further divided into groups as follows.
What is C++?
As an extension of the C language, C++ was developed by Bjarne Stroustrup as a general-purpose cross-platform language
which gives programmers a high level of control over system resources and memory.
Why C++?
– Google Chrome, Mozilla Firefox etc. web browsers are developed using C++
There are many more such uses that make C++ the desired language.
If there are two or more functions with the same name defined in different libraries then how will the compiler know which
one to refer to? Thus namespace came to the picture. A namespace defines the scope and differentiates functions, classes,
variables etc. with the same name available in different libraries. The namespace starts with the keyword “namespace”. The
syntax for the same is as follows:
namespace namespace_name {
// code declarations
Operator overloading in C++ is an overloaded declaration is declaration in the same scope of function or operator declared
with the same name more than once.
C++ is a programming language which is an extension of C. Thus, one should prefer to learn C first (it’s not necessary). After
learning C, then understand the basic difference between C and C++. Implement all the basic programs you learnt in C in
C++ also. Then dive into the OOPs concept of C++. Do as much hands-on as possible to understand basic OOPs, and then
dive into advanced-level OOPs. When all the basics are clear, build a small game to understand the structure and remain
concepts if any. By following all these steps one can learn C++.
The difference between c and c++ is that C++ is an object-oriented language, which means that it has all the features of C
as well as its own thing which is the concept of OOP. C++ has many functionalities of OOP that are missing from C such as
encapsulation, abstraction, classes, objects, etc.
C C++
C doest not support Function and operator overloading C++ support Function and operator overloading
Functions can not be defined inside structures. Functions can be defined inside structures.
A template in C++ is used to pass data types as parameters. These make it easier and simpler to use classes and functions.
return (a+b);
int main(){
cout<<fun<int>(11,22);
Using namespace std in C++ tells the compiler that you will be making use of the namespace called ‘std’. The ‘std’
namespace contains all the features of the standard library. You need to put this statement at the start of all your C++ codes
if you don’t want to keep on writing std:: infront of every variable/string or whatever standard library feature you are making
use of, as it becomes tedious to do so.
Shift+Insert
Open the file in notepad with .cpp extension. Make the changes and save it. After saving the file, you can open it from
the Turbo C++ application file menu from where you stored the cpp file.
Pointers in C++ are a data type that store the memory address of another variable.
For eg.
Here the pointer variable *str points to the string "Hi, How are you?"
or
int age;
int *int_value;
*int_value = &age;
cin>>age;
// this will print your age as the variable is pointing to the variable age.
A function in C++ is a block of code that can be referenced from anywhere in the system and that serves a specific purpose.
int fun(){
int a = 11;
return 11;
int main(){
int b = fun();
Destructors in c++ are special functions/methods that are used to remove memory allocation for objects. They are called
usually when the scope of an object ends. eg. when a function ends you can call it a destructor.
Function Overloading happens in C++ when two or more functions share the same name. They can be differentiated on the
basis of the type of data they are passing as parameters or even the number of parameters they are passing. eg. int fun(char
a); & int fun(int b); & void fun(int a, int b)
Stl is the standard template library. It is a library that allows you to use a standard set of templates for things such as:
Algorithms, functions, Iterators in place of actual code.
queue<int> Q;
for(k=0;k<10;k++)
Q.push(k);
or
$ g++ -o main main.cpp then run the executable generated in your system:
$ main.exe
Type casting in C is used to change the data type. They are of two types: Implicit Type Conversion: It is automatic. Explicit
Type Conversion: It is user-defined.
A string is a sequence of characters. In C++, the string is a data type as well as a header file. This header file consists of
powerful functions of string manipulation. A variable of string is declared as follows:
#include <string>
Stream refers to a stream of characters to be transferred between program thread and i/o.
– By default, the data members of the class are private whereas data members of structure are public.
– While implementing inheritance, the access specifier for struct is public whereas for class its private.
– Structures contain only data members whereas class contains data members as well as member functions.
– In structure, data members are not initialized with a value whereas in class, data members can be initialised.
– Structures are stored as stack in memory whereas class is stored as heap in memory.
To compile and run c program in notepad++ follow the steps mentioned below:
Step-3: Configure notepad++ for gcc. This step can be further divided into two sub-steps. A: Create C
compiler tool in Notepad++
There are 95 reserved keywords in C++ which are not available for re-definition or overloading.
It is a header file that includes basic objects such as cin, cout, cerr, clog.
In C++ programming, the space can be given using the following code.
cout << ” ” ;
– “sizeof” operator
Runtime abnormal conditions that occur in the program are called exceptions. These are of 2 types:
– Synchronous
– Asynchronous
– try
– catch
– throw
This is one of the most common c++ interview questions asked, the difference between c++ and java are as follows:
– C++ is majorly used in system programming whereas Java is majorly used in application programming.
– C++ supports multiple inheritance whereas Java does not support multiple inheritance
– C++ supports operator overloading whereas Java does not support operator overloading.
– C++ has pointers which can be used in the program whereas Java has pointers but internally.
– C++ uses a compiler only whereas Java uses both compiler and interpreter.
– C++ has both call by value and call by reference whereas Java supports only call by value.
– C++ supports structures and joins whereas Java does not support structure and joins
– Java supports unsigned right shift operator (>>>) whereas C++ does not.
– C++ is interactive with hardware whereas Java is not that interactive with hardware.
A linear data structure which implements all the operations (push, pop) in LIFO (Last In First Out) order. Stack can be
implemented using either arrays or linked list.The operations in Stack are
Conio.h is a header file used for console input and output operations and is used for creating text based user interfaces.
To exit Turbo C++, use the Quit option under the File Menu, or press Alt + X.
Any object which has an ability to iterate through elements of the range it has been pointing to is called iterator.
What is :: in C++?
:: is called a scope resolution operator which is used to access global variables with the same name as of local variables, for
defining functions outside the class, for accessing static variables, and for referring to a class inside of another class.
enum is abbreviation of Enumeration which assigns names to integer constant to make a program easy to read. Syntax for
the same:
When you have written code in the file (notepad),save the file as “hello.cpp.” If you want to write in a file using C++ code, you
can do it using iostream and fstream libraries in C++.
#include <iostream>
#include <fstream>
int main () {
ofstream file_name;
file_name.open ("sample.txt");
file_name.close();
return 0;
Alt+Enter is the keyboard shortcut used to maximize (full screen) turbo C++.
An expression is a combination of operators, constants and variables. These seven types of expressions for examples:
- Integral expressions: x * y
If the program does not have using namespace std; then when you write cout <<; you would have to put std::cout <<; same
for other functions such as cin, endl etc.
MinGW /
GCC- Borland c++
Dev C++
Embracadero
Clang
Visual C++
Intel C++
Code Block
GCC and clang are great compilers if the programmers target more portability with good speed.
Intel and other compilers target speed with relatively less emphasis on portability.
Primitive Datatype such as char, short, int, float, long, double, bool, etc.
Derived datatype such as an array, pointer, etc.
Enumeration such as enum
User-defined data types such as structure, class, etc.
Reference Pointers
A reference shares the same memory address with the original variable and Pointer has its own memory address and
takes up some space on the stack size on the stack
Exceptions are errors that happen during the execution of code. To handle them we use throw, try & catch keywords.
C++ is a standardized language and Visual C++ is a product that implements the standard of C++. One can write portable
C++ programs using Visual C++, but one can also use Microsoft-only extensions which destroy portability but enhances your
productivity.
STL in C++ is a library and abbreviation of Standard Template Library. STL is a generalized library that provides common
programming data structures/ container classes, functions, algorithms, and iterators. STL has four components
- Algorithms: Searching and sorting algorithms such as binary search, merge sort etc.
std::flush synchronizes the stream buffer with its controlled output sequence.
This section of the blog talks about advanced C++ Interview Questions for your reference.
C language is not an object-oriented programming language, so it is a constant attempt of C++ to introduce OOPs. Class is
a user-defined data type that defines a blueprint of data type. For example,
class Circle{
public:
float radius;
Inline functions are functions used to increase the execution time of a program. Basically, if a function is inline, the compiler
puts the function code wherever the function is used during compile time. The syntax for the same is as follows:
//block of code
A friend function has access rights to all private and protected members of the class.
class Circle
{
double radius;
public:
friend void printradius( Circle c );
};
void printradius(Circle c )
{
/* Because printradius() is a friend of Circle, it can directly access any member of this class */
cout << "Radius of circle: "
<< c.width;}int main()
{
Circle c;
// Use friend function to print the radius.
printradius( c); return 0;
}
#include<iostream>
#include<vector>
int main()
vec_push_back("sample code");
vec_push_back("change example");
cout<<*i;
return 0;
A sequence of containers to store elements, a vector is a template class of C++. Vectors are used when managing ever-
changing data elements. The syntax of creating vector.
For example:
Scope resolution operator in c++ is denoted by double colon (::). It can be used:
A character constant is member of the character set in which a program is written which is surrounded by single quotation
marks (‘).
A feature that allows functions and classes to operate with generic types which means a function or class can work on
different data types without being rewritten is called a template.
#include <bits/stdc++.h>
int main()
sort(vec.begin(), vec.end());
for (auto x : v)
return 0;
A pure virtual function is a type of virtual function which does not have implementation, but is only declared. It is declared by
assigning 0 in declaration.
class Test
public:
/* Other members */
};
Associative containers storing a combination of a key value or mapped value is called Maps. Syntax:
#include <iostream>
#include <iterator>
#include <map>
int main()
// inserting elements
return 0;
Std::vector::empty tests whether a vector is empty or not. A sample code for illustrating the same is as follows:
#include <iostream>
#include <vector>
int main ()
std::vector<int> vec;
while (!vec.empty())
add+= vec.back();
vec.pop_back();
return 0;
Segmentation fault indicates an error memory corruption. In layman terms, when a piece of code tries to do read and write
operation in a read only location in memory. Below are the reasons and solutions for segmentation error:
int* p = malloc(8);
*p = 100;
free(p);
*p = 110;
Solution: Before freeing the pointer check the assignment or any operation required to perform.
int arr[2];
arr[3] = 10;
int n = 2;
scanf("%d",n);
int *p;
printf("%d",*p);
Solution: It can be resolved by having a base condition to return from the recursive function.
{ 2, 6, 7 } };
OOP or Object Oriented Programming in C++ is a type of programming in which you create objects and classes to emulate
real-world concepts such as Abstraction, Polymorphism, Encapsulation, and Inheritance.
Here classes are data types that allow you to list several types of data within it and even functions. You can access these
classes with the help of class objects
Constructor in C++ is a method in the class which has the same name as that of the class and is followed by parentheses ().
It is automatically called when an object of a class is created.
Hello() { // Constructor
};
int main() {
Hello obj; // Create an object of Hello (this will call the constructor)
return 0;
Inheritance in C++ is just like a child inherits some features and attributes from his parent similarly a class inherit attributes
and methods from another class. The parent class is called base class and the child class is called derived class.
// Base class
class Food_Item{
public:
void taste() {
};
// Derived class
public:
void taste() {
};
Class in C++ provides a blueprint for object, that means, object is created from the class.
For example,
class Circle{
public:
float radius;
Circle C1;
Circle C2;
To prevent access to data directly, Encapsulation is the process that combines data variables and functions in a class. This
is achieved by doing the following:
Abstraction in C++ means showing only what is necessary. It’s part of the Object-oriented Programming concept. Abstraction
is used to hide any irrelevant data from the outside world and only show what is absolutely necessary for the outside world to
use.
eg. Classes use the abstraction concept to only show relevant data types or elements. This is done through access
specifiers such as: public, private, and protected.
Member functions are those functions that you declare within a class, they are members of the class. You can reference
them using class objects. Eg:
class A
public:
int add(int b)
a = b * 10;
return a;
};
};
Here X & Y inherit from W. So they both have similar features being inherited from W.
Here Z may inherit similar features from X & Y as they both have inherited them from W. This can cause issues and that’s
why we use virtual base classes as they stop multiple features of a class from appearing in another class.
Private members of the class are not accessible by object or function outside the class. Only functions inside the class can
access them or friend functions. However, pointers can be used to access private data members outside the class.
#include <iostream>
class sample_test{
private:
int n;
public:
sample_test() { n = 45; }
int display() {
return n;
};
A base class constructor will be called whenever the derived class constructor is called. Upon the creation of a derived class
object, the order of constructor execution is: base class constructor then Default class constructor.
An abstract class in C++ is such that cannot be used directly and is used to form a base class for others to inherit from.
If you create an object for an abstract class the compiler will throw an error at you.
Containership in C++ is a relationship in which a class’s object is nested within another class. The class that contains the
object is called a container class and the class whose object is stored is called a contained class.
An object-oriented technique of hiding data members is called data hiding. In other words, giving restricted access to the
data members so as to maintain object integrity.
Polymorphism Concept
#include <bits/stdc++.h>
class parent
public:
void print()
};
public:
void print()
};
int main()
parent *p;
child c;
p = &c;
p->print();
return 0;
A copy constructor in c++ is a constructor which creates an object by initializing it with an object of the same class, which
has been created previously.
The syntax for copy constructor is as follows:
// body of constructor
Modularity is a way of mapping encapsulated abstractions into real and physical modules which is closely related to
Encapsulation. It is a concept in which separate programs are divided into separate modules.
For example, when building a house it is built in modular way. First foundation is
laid, then structure is made and so on.
The size of an empty class is 1 byte generally just to ensure that the two different objects will have different addresses.
Programming is an important aspect for any programmer or developer. This section of the blog talks about c++ interview
questions that will be beneficial to programming. Here is the list of the top 20 c++ programming questions.
There are three ways to input a string, using cin, get, and getline. All three methods are mentioned in the sample program
below.
#include <iostream>
using namespace std;
int main()
{
char s[10];
getline(cin, str);
return 0;
}
#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
char n[50], t;
int i, j;
cout << "Enter a string : ";
gets(n);
i = strlen(n) - 1;
for (j = 0; j < i; j++,i--)
{
t = s[j];
s[j] = s[i];
s[i] = t;
}
cout << "nReverse string : " << s;
return 0;
}
There are 2 approaches to convert integer variables to string. Both the approaches with a sample code are mentioned
below.
Approach-1
#include<iostream>
#include<string>
using namespace std;
void main()
{
int n= 1;
string s= to_string(n);
cout << s;
}
Approach-2
#include<iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
int n = 17;
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
There are several methods by which one can allocate memory to 2D array dynamically one of which is as follows:
#include <iostream>
int main()
{
int row = 2, col = 2;
int* a = new int[row * col];
int i, j, count = 0;
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)
*(a+ i*col + j) = count++;
delete[ ] a;
return 0;
}
The syntax is
goto label;
label: statement;
#include <iostream>
using namespace std;
void main () {
float d, avg, add = 0.0;
int j, n;
cin >> n;
jump:
avg = add/ (j- 1);
cout << avg;
}
When a function with same name is present in both parent and child class then it is called function overriding.
#include <iostream>
using namespace std;
class parent {
public:
void display(){
cout<<"Parent Class";
}
};
class child: public parent{
public:
void display() {
cout<<"Child Class";
}
};
int main() {
child o = parent();
o.display();
return 0;
}
Bool is a data type in C++ which takes two values- True and False.
bool b1 = true;
#include<iostream>
using namespace std;
int main()
{
int a= 60, b= 70;
bool c, d;
c= a== b; // false
c= a< b; // true
cout <<b1;
cout << b2 ;
return 0;
}
For limiting the decimal places in C++ there are five functions : floor(), ceil(), trunc(), round() and setprecision(). Out of these
five, only setprecision() function is used for setting the decimal places to put as output. All the functions are mentioned in the
following sample code.
#include<bits/stdc++.h>
using namespace std;
int main()
{
float a =33333;
cout << floor(a) << endl;
cout << ceil(a) << endl;
cout << trunc(a) << endl;
cout << round(a) << endl;
cout << setprecision(2) << a;
return 0;
}
In C++, there are three functions in the cstdlib header file to return the absolute value of the integer. Those are:
abs()
labs()
llabs()
function_name(integer value)
The difference lies in the range for integer value being passed as an argument.
For abs() its type int in C++.
For labs(), its type long int in C++
For llabs() its long long int in C++.
#include <cstdlib>
#include <iostream>
int main()
{
int a, b, c;
a = abs(22);
b= labs(1234355L);
c= llabs(1234863551LL);
cout << a;
cout << b;
cout<< c;
return 0;
}
The strings in C++ can be concatenated in two ways- one considering them string objects and the second concatenating
them C-style strings.
#include <iostream>
using namespace std;
int main()
{
string s_1, s_2, fin;
cout << "Enter string";
getline (cin, s_1);
cout << "Enter string ";
getline (cin, s_2);
fin= s_1 + s_2;
cout << fin;
strcat(str1, str2);
return 0;
}
There are three methods for converting char variable to int type variable. These are as follows:
atoi()
sscanf()
typecasting
#include<stdio.h>
#include<stdlib.h>
int main() {
char *s = "6790";
char d = 's';
int a,b,c;
return 0;
}
Using the rand() function we can generate random numbers in C++ within a range.
#include <iostream>
#include <random>
int main()
{
int max=100, min=54,i;
int range = max - min + 1;
for (i=min; i<max;i++)
{
int num = rand() % range + min;
cout<<num;
}
return 0;
}
To find the absolute value in c++, we can use abs() function. The abs() function in C++ returns the absolute value of an
integer number.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a=3.456;
int x = abs(a);
cout << x;
return 0;
}
A class in C++ is the building block that leads to Object-Oriented programming and is a user-defined data type which holds
data and functions. The syntax to write a class in C++ is as follows:
// Data Members
string s;
// Member Functions()
void printname()
{
cout << s;
}
};
strcmp() function is an in-built function of <string.h> header file which takes two strings as arguments and compares these
two strings lexicographically.
#include<stdio.h>
#include<string.h>
int main()
{
// z has greater ASCII value than g
char a[] = "zfz";
char b[] = "gfg";
if (r==0)
printf("Strings are equal");
else
printf("Strings are unequal");
printf("%d" , r);
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fout;
string r;
fout.open("test.txt");
while (fout) {
getline(cin, r);
if (r == "-1")
break;
fout << line << endl;
}
fout.close();
ifstream fin;
fin.open("test.txt");
while (fin) {
getline(fin, line);
cout << line << endl;
}
fin.close();
return 0;
}
Stringstream is a class in c++ that associates a string object with a stream allowing to read from the string as if it were a
stream.
Syntax is as follows:
stringstream string_name(str);
clear()
str()
<<
>>
This brings us to the end of the blog on c++ interview questions. We hope you are now well-equipped with the kind of
questions that may be asked during an Interview. Wondering where to learn the highly coveted in-demand skills for free?
Check out the courses on Great Learning Academy.
Popular Courses Interview Questions
Salary Blogs
Salary Calculator
(Formerly known as Great Lakes E-Learning Services Private Limited).All rights reserved