0% found this document useful (0 votes)
11 views

Interview Question asked for me in cpp

Uploaded by

Animesh Dwivedi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Interview Question asked for me in cpp

Uploaded by

Animesh Dwivedi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

Interview Question asked for me in cpp

2.
What is a namespace in C++?

In C++, a namespace is a way to group related code under a single name. It helps in
organizing code and prevents naming conflicts. By using namespaces, you can avoid
clashes between function names or variable names that are used in different parts of a
program or in external libraries.

Namespaces provide a way to logically separate code and improve code readability and
maintainability.

The code is:

3.
What is operator overloading in C++?

Operator overloading in C++ allows an operator to have different behaviors depending


on the types of operands used. It enables operators like +, -, * to perform custom
operations on user-defined classes.
For example, you can define what happens when you add two objects of a class. This
feature helps make code more expressive and readable by allowing operators to work
intuitively with user-defined types.
4.
How to learn C++?

Learning C++ can seem daunting, but there are effective ways to pick it up. Here's a
roadmap to get started:

• Start with a good beginner's book or online tutorial.


• Familiarize yourself with the syntax and basic concepts.
• Practice by coding small programs and gradually increase complexity.
• Join coding communities and forums for support and guidance.
• Work on personal projects to apply what you've learned.
• Keep experimenting and stay up-to-date with the latest developments in C++.
5.
What is the difference between C and C++?

The differences between C and C++ are:

6.
What is a template in C++?

In C++, a template is a feature that allows you to write generic programs that work with
different data types. You can create a function or a class template which can then be
used with different data types. The main advantage of using templates is that you can
avoid writing the same code multiple times for different data types.

Templates also make code more reusable and easier to maintain. To create a function
template, you use the keyword "template" followed by the template parameter list. You
then define the function like you normally would. The template parameter list specifies
the types that the template can work with.

Here's an example of a function template that finds the maximum of two values:

In this example, T is the template parameter that specifies the type of the arguments, x
and y. This function can be used with any data type for which the comparison operator
> is defined. For example, you can call this function with int arguments like this - max(3,
5) - and it will return 5.
7.
What is using namespace std in C++?

Using namespace std is a C++ directive that allows you to access the elements of the std
namespace without explicitly specifying it. This means you can directly use cout, endl,
and other standard library elements without having to write std::cout, std::endl, etc.

However, using this directive may cause naming conflicts, especially if you have
multiple namespaces. It's recommended to avoid using it in larger projects.
8.
What is the return type of a function in C++?

In C++, a function can return a value of any valid data type, including built-in data types
such as int, float, and double, as well as user-defined data types such as classes or
structs. The return type of a function is specified in the function declaration by placing
the return data type before the name of the function . For example, a function that
returns an integer might have the following declaration:

int square(int x);

which specifies that the function takes an integer argument and returns an integer
value.
9.
How are function arguments passed in C++?

When a function is called with arguments passed by value, copies of the values of the
arguments are made and passed to the function. Any changes made to the arguments
within the function do not affect the original values in the calling code.

On the other hand, when a function is called with arguments passed by reference, the
memory address of the arguments is passed to the function. This allows the function to
directly access and modify the original values of the arguments in the calling code.

It is important to note that passing arguments by reference can have performance


advantages over passing by value, especially when working with large objects or data
structures. However, passing by value can be useful when you want to ensure that the
original values are not modified by the function.
10.
What is a function in C++?

In C++, a function is a self-contained block of code that performs a specific task. It can be
thought of as a subprogram within a program. Functions are used to organize code,
improve code reusability, and modularize the program.

A function has a return type, a name, and zero or more parameters. The return type
specifies the data type of the value that the function will return (if any). The name is
used to identify and call the function. The parameters are variables that hold values
passed into the function.
11.
What is a destructor in C++?

Keep a note of this C++ interview question to ask candidates or answer recruiters.

A destructor in C++ is a member function of a class that is responsible for cleaning up


the resources used by an object of that class when it is destroyed. A destructor is
invoked automatically when an object goes out of scope or is explicitly deleted.

It has the same name as the class with a tilde symbol(~) in front of it, and it does not
take any arguments. The purpose of the destructor is to free up any memory or
resources allocated to the object during its lifetime.

Here's an example of a destructor in a C++ class:


In this example, the constructor is responsible for initializing the object's data members,
while the destructor is responsible for releasing any memory or resources allocated
during the object's lifetime.
12.
What is function overloading in C++?

Function overloading in C++ is a feature that allows a programmer to define multiple


functions with the same name but different parameter lists. This means that you can
define functions with the same name but different input/output behaviors, making your
code more flexible and easier to read.

Function overloading offers a way to handle different types of data and perform
different operations using a single function name.
13.
What is STL in C++?

STL stands for Standard Template Library and it's a powerful library in C++ for working
with sequences of data.

Here is an example of how to use it:


14.
How to run a C++ program in cmd?

To run a C++ program in the command prompt, follow these steps:

• Open the command prompt by pressing Win + R and then typing cmd.
• Navigate to the directory where your C++ program is located using the cd command. For
example, if your program is in the directory C:\Programs, you would use the command
cd C:\Programs.
• Compile your C++ program using the appropriate compiler command. For example, if
you have g++ installed, you can use the command g++ program.CPP-o program to
compile the program and generate an executable file.
• Once the compilation is successful, you can run the program by typing its name and
pressing Enter. For example, if your executable file is named program.exe, you would
type program and press Enter.
• That's it! Your C++ program should now run in the command prompt.
Please note that the steps may vary slightly depending on the compiler and operating
system you are using. The above steps assume th use of a compiler like g++ on a
Windows operating system.
15.
What is type casting in C++?

Type casting in C++ is a way to convert one data type into another. It helps in ensuring
compatibility and flexibility in programming. C++ provides two types of casting: implicit
and explicit.

Implicit casting is done automatically by the compiler, while explicit casting requires the
programmer to explicitly convert the data type. This can be useful when working with
mixed data types or performing specific operations.
16.
How to use a string in C++?

To use a string in C++, you need to follow these steps:

Include the < string > header in your program by using the #include preprocessor
directive:

Alternatively, you can initialize the string at the time of declaration:

Access and modify the string using various string member functions such as length(),
substr(), append(), etc.

For example, to retrieve the length of the string, use the length() function:
If you want to extract a substring from the original string, you can use the substr()
function:

Use the string in your program as needed. Also, it is important to include the necessary
headers, declare the variable, and utilize the appropriate member functions to work
with the string effectively.
17.
What is stream in C++?

A stream in C++ is an abstraction that allows input and output operations. It represents
a sequence of characters that are read from or written to a specific device such as the
console or a file.

Streams provide a convenient way to handle input and output in a standardized


manner. There are different types of streams such as the standard input stream (cin)
and the standard output stream (cout).
18.
What is the difference between structure and class in C++?
19.
How to clear the screen in C++?

A system-specific command can be used to clear the screen in C++. Here's an example
using the standard library function system:

In the code above, std::system("clear"); clears the screen in Linux and macOS, while
std::system("cls"); is used for Windows systems.
20.
How to compile and run a C program in notepad++?

To compile and run a C program in Notepad++, you will need to set up a build system
and configure the necessary commands. Here's a step-by-step guide:

• Install a C compiler: You'll need a C compiler installed on your system to compile and run
C programs. A popular option is MinGW for Windows, which provides the GCC compiler.
• Set up the compiler path: Once you have a C compiler installed, add the compiler's bin
directory to your system's PATH environment variable. This allows Notepad++ to find
the compiler when executing build commands.
• Configure Notepad++: Open Notepad++ and go to "Settings" -> "Preferences".
• Select the "Language" tab on the left sidebar and choose "C" from the "Language"
dropdown.
• In the "Syntax Highlighting" section, select "C" as the default language for *.c files.
• Select the "Run" tab on the left sidebar and set up the following commands:
• Execute: Enter the command to run the compiled program. For example, if your
compiled program is named "program.exe", you can use cmd /c
"$(FULL_CURRENT_PATH)" as the command.
• Compile: Enter the command to compile the C program. For MinGW, you can use gcc
"$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)$(NAME_PART).exe" as the
command. This command uses the gcc compiler to compile the current file and outputs
the executable in the same directory with the same name as the source file.
• Click "OK" to save the settings.
• Open a new or existing C file in Notepad++.
• Press F5 or go to "Run" -> "Run" to compile and run the C program. This will execute the
build commands configured in the previous steps.
• Make sure to save your C file with a .c extension before running the build commands.
Note: The instructions provided here are specific to using MinGW on Windows. If you
are using a different compiler or operating system, you may need to adjust the
commands accordingly.
21.
How many keywords are there in C++?

There are a total of 95 reserved keywords in C++. These keywords have special
meanings and cannot be used for re-definition or overloading.

Some examples of these keywords include "alignas", "auto", "bool", "class", "double",
"for", "if", "namespace", "return", and "while".
22.
What is iostream in C++?

In C++, iostream is a header file that is part of the standard library. It defines the
standard input/output stream objects, such as cout (for output) and cin (for input). By
including the iostream header, you can utilize these stream objects for reading from and
writing to the standard input and output streams.
Using the iostream header is essential when working with input and output operations
in a C++ program. Without including it, you won't be able to use the cout and cin stream
objects.
23.
How to give space in C++?

To give space in C++, use the "setw" function from the "iomanip" library. First, include
the library by adding #include < iomanip> at the top. Then, use setw followed by the
desired width to create an empty space.

For example, cout << setw(10); will create a space of 10 characters. Remember to use
cout to display the space.
24.
Which operator cannot be overloaded in C++ ?

The "scope resolution" operator (::) cannot be overloaded in C++. This operator is used
to access global variables, functions, and classes from outside their defined scope. Not
allowing overload ensures consistent behavior while accessing elements at various
scopes.

Overloading other operators, however, gives flexibility and enables customized


behavior for user-defined types.
25.
What is a default argument in a function? How is it useful?

A default argument in a function in C++ is a parameter that has a predefined value


assigned to it. It allows you to provide a default value for a function parameter, so if the
caller does not provide a value for that parameter when calling the function, the default
value will be used.

The syntax for declaring a default argument is to assign a value to the parameter in the
function declaration. For example:
In the above example, the default value for the x parameter is 5. If the caller of the
function does not provide a value for x, the function will use the default value of 5.

Default arguments are useful in several scenarios:

Convenience: Default arguments allow you to provide a default behavior for a function
without requiring the caller to explicitly provide values for all parameters. This can
make the function easier to use and reduce the amount of code needed to call the
function.

Code reuse: By providing default arguments, you can define a single function that can be
used in multiple scenarios with different parameter values. This promotes code reuse
and reduces the need for duplicate code.

Gradual implementation: Default arguments are particularly useful when you want to
add new parameters to a function without breaking existing code that calls the function.
By providing default values for the new parameters, existing code can continue to work
without modification, while new code can take advantage of the additional functionality.
26.
What is an exception in C++?

An exception is an object that is thrown at runtime when an abnormal behavior or


situation is encountered in a C++ program. It provides a way to transfer control and
information from one part of the program to another part in order to handle the
exceptional circumstance or error.

Exception handling in C++ involves throwing an exception using the throw keyword,
catching it using the try-catch block, and handling it appropriately in the catch block.
27.
What is the difference between C++ and Java?

C++ and Java differ in several ways:

Memory Management:

• C++ allows for manual memory management using features like pointers and
new/delete. This gives the programmer more control but can also lead to memory-
related errors if not handled carefully.
• Java uses automatic memory management through garbage collection. Developers do
not need to explicitly deallocate memory, reducing the risk of memory leaks and pointer-
related errors.

Language Paradigm:

• C++ is a multi-paradigm language that supports both procedural and object-oriented


programming. It also includes features like templates for generic programming.
• Java is primarily an object-oriented language, and it encourages the use of classes and
objects for structuring code.

Platform Independence:

• Java is known for its "write once, run anywhere" capability, as Java code is compiled into
bytecode that can be executed on any platform with a Java Virtual Machine (JVM).
• C++ code is compiled into platform-specific machine code, which means that different
binaries need to be generated for different platforms.

Exception Handling:

• C++ uses a combination of the try, catch, and throw keywords for exception handling.
• Java has a more robust and unified approach to exception handling using the try, catch,
finally, and throw keywords.

Standard Library:

• C++ has the C++ Standard Library (STL) that provides a rich set of data structures (e.g.,
vectors, maps) and algorithms (e.g., sorting, searching) as part of the language.
• Java has its own standard library that includes data structures (e.g., ArrayList, HashMap)
and utility classes (e.g., Collections, String) for common tasks.

Performance:

• C++ is often considered faster and more efficient than Java because of its lower-level
memory control and direct compilation to machine code.
• Java provides platform independence and strong safety checks, but it may have a
performance overhead due to interpretation or JIT compilation.

Ecosystem:

• C++ is widely used in system programming, game development, embedded systems,


and areas where low-level control is essential.
• Java is commonly used in enterprise applications, Android app development, web
services, and scenarios where platform independence is crucial.
28.
What is stack in C++?

In C++, a stack is a container adapter in the C++ Standard Template Library (STL) that
provides functionality of a stack data structure. It operates on a last-in, first-out (LIFO)
basis, meaning that the last element to be added is the first to be removed. A stack can
be implemented using other containers in C++ like vectors, lists, or deques.
29.
What is conio.h in C++?

conio.h is a C++ header file that provides a collection of functions to read input and
output to the console. It mainly includes functions, such as getch() and clrscr(), which
are used to get a single character input from the user and clear the console screen
respectively.

However, conio.h is a non-standard library and is not recommended to be used in


modern programming practices.
30.
What is a function prototype in C++?

A function prototype in C++ is a declaration of a function that specifies the function


name, return type, and parameter types. It provides information to the compiler about
the function's interface before the function is actually defined. A function prototype is
typically placed in a header file, and is used to allow functions to be called before they
are defined, as well as to ensure that functions are called with the correct types and
number of parameters. The function definition provides the actual implementation of
the function.
31.
What is an iterator in C++?

An iterator in C++ is an object that points to elements in a sequence (like an array or a


container). It allows you to traverse through the elements of the sequence and perform
operations on them. It provides a way to access, modify, and delete elements in a
sequential manner. An iterator is commonly used in loops and algorithms to process
container elements one by one.
32.
What is :: in C++?

In C++, "::" is the scope resolution operator. It is used to access entities (such as
variables, functions, or classes) that are defined within a specific scope. By using "::",
you can specify the scope in which the entity is defined, allowing you to avoid naming
conflicts and access the correct entity. This operator is especially useful when working
with namespaces and nested classes.
33.
What is enum in C++?

An enum in C++ is a user-defined type that consists of a set of named constants. It


allows you to define a set of named values which can be used as symbolic names for
variables. The enum constants can be used to represent a finite set of values. This helps
in writing clear and readable code by associating names to numerical values.
34.
What is endl in C++?

endl is a special command in C++ that is used to insert a newline character and flush the
output buffer. It is often used with the cout object to output text to the console. Using
endl is equivalent to using "\n" to insert a newline character; however, endl also flushes
the output buffer, ensuring that the text is immediately displayed.
35.
How to save a file in C++?

The steps to save a file in C++ are:

• Include the < fstream > header.


• Create an ofstream object and open it using the open() method, specifying the desired
file name.
• Use the << operator to write data to the file.
• Close the file using the close() method.
Remember to handle any errors that may occur during the file operations.
36.
Which operators can be overloaded in C++?

In C++, operators can be overloaded to give special meaning to an existing operator for
user-defined classes. The following operators can be overloaded in C++:

Arithmetic operators:

• Addition (+)
• Subtraction (-)
• Multiplication (*)
• Division (/)
• Modulus (%)

Assignment operators:

• Assignment (=)
• Addition and assignment (+=)
• Subtraction and assignment (-=)
• Multiplication and assignment (*=)
• Division and assignment (/=)
• Modulus and assignment (%=)

Comparison operators:

• Equality (==)
• Inequality (!=)
• Less than (<)
• Greater than (>)
• Less than or equal to (<=)
• Greater than or equal to (>=)

Increment and Decrement Operators:

• Prefix increment (++)


• Postfix increment (++)
• Prefix decrement (--)
• Postfix decrement (--)

Logical operators:

• Logical NOT (!)


• Logical AND (&&)
• Logical OR (||)

Bitwise operators:

• Bitwise AND (&)


• Bitwise OR (|)
• Bitwise XOR (^)
• Bitwise complement (~)
• Bitwise left shift (<<)
• Bitwise right shift (>>)

Subscript operator:

• Array subscript ([])

Function call operator:

• Function call (())

Member access operators:

• Member selection (.)


• Member pointer selection (->)

It's important to note that not all operators can be overloaded in C++. These include:

• Scope resolution operator ( :: )


• Conditional operator ( ?: )
• sizeof operator
• typeid operator
• . operator for member access
• .* operator for member pointer access
37.
How to include all libraries in C++?
You can use the "#include" directive before your code to include all libraries in C++.
This allows you to access libraries and their functions. However, including all libraries is
not recommended as it increases code size and may cause conflicts.

It is better to include only the necessary libraries for your specific program. Remember
to use the libraries' header files and link the necessary libraries during the compilation
process.
38.
Can a function return multiple values in C++?

Yes, in C++ a function can return multiple values by utilizing various techniques. One
approach is to use references or pointers as function parameters, allowing the function
to modify the corresponding variables in the calling code. Another option is to use a
std::tuple or std::pair to bundle multiple values together and return them as a single
object.

39.
What is an expression in C++?

An expression in C++ is any valid unit of code that can be evaluated to a value. It can be
a combination of variables, constants, literals, operators, and functions that produce a
single value. Expressions can be used for variable assignments, conditional statements,
loop statements, and many other programming constructs.

For example, a + b * c is an expression in C++ that multiplies the value of b with c, adds
the result to the value of a, and returns the final outcome as a single value.
40.
Why is the namespace std used in C++?

Namespace std is used in C++ as an identifier to enclose the Standard Library. It is a


collection of pre-written code that can be used with C++ to simplify common
programming tasks.

Using namespace std provides access to the Standard Library entities, such as different
types, functions, and variables, so that they can be used within a program without
having to define them again. Therefore, when namespace std is used, it is no longer
necessary to write code for every action to be performed. This makes coding more
efficient.
41.
Which is the best C++ compiler?
Choosing the best C++ compiler depends on your specific requirements and
preferences. The choice of the best compiler depends on your specific project
requirements, platform, and personal preferences. It's also worth considering factors
like performance, standard compliance, and the availability of development tools and
libraries. Many C++ developers work with multiple compilers depending on the target
platform and project needs. Here are some widely used and respected C++ compilers,
each with its own strengths that are widely used and recommended by C++ developers:

Visual C++ Compiler (Microsoft Visual Studio):

• Great for Windows development.


• Integrated development environment (IDE) with a rich set of tools.
• Excellent support for Windows-specific development.

Clang:

• Known for its high-quality diagnostics and error messages.


• Excellent C++ standards compliance.
• Often used in combination with CMake for cross-platform development.

GCC (GNU Compiler Collection):

• Highly portable and available on various platforms.


• Strong optimization capabilities.
• Good compliance with C++ standards.

Intel C++ Compiler:

• Known for excellent optimization, especially on Intel processors.


• Often used in scientific and high-performance computing.

MinGW-w64:

• Provides a Windows development environment with GCC.


• Suitable for cross-platform development targeting Windows.

LLVM (Low-Level Virtual Machine):

• Offers both Clang and other compiler frontends.


• Known for its modular and extensible architecture.
42.
What are the different data types present in C++?

The following are the data types in C++:

• Primitive data types are built-in or predefined data types and can be used directly by the
user to declare variables. Examples include integers, characters, floating-point numbers,
booleans, and others.
• Derived data types are user-defined data types created by combining one or more
primitive data types. Examples include arrays, pointers, and functions.
• User-defined data types are those defined by the user using classes or structures.
It's worth noting that each data type has its own size, range of values, and behavior.
43.
What are the advantages of C++?

The advantages of C++ are:

Object-oriented language: C++ is an object-oriented programming language that allows


developers to create flexible and reusable code. This makes it easier to maintain
applications over time.

Efficient memory usage: C++ provides full control over memory management. It allows
developers to implement dynamic memory allocation or deallocation and manage
memory usage efficiently. It offers a more sustainable way of using memory than many
other programming languages.

High portability: C++ is a highly portable language and is often the language of choice
for multi-device, multi-platform app development. This ensures that developers can
write and execute their code on different devices and operating systems.

Efficient compilation: C++ provides efficient compilation, which means that code
compilation can be done in highly optimized computers with little or no overhead. This
results in faster code compilation times and allows the code to execute faster.

Large community: C++ has a large community of developers who are continuously
creating and contributing to the program. This ensures that C++ continuously evolves
and improves.

Overall, C++ is an excellent programming language for developers who need high
performance, flexibility, and control over memory management.
44.
What is the difference between reference and pointer?

Reference and pointer have the following differences:


45.
What is exception handling in C++?

Exception handling in C++ is a mechanism to handle errors or exceptional events that


may occur during program execution. It allows you to catch and handle these exceptions
instead of terminating the program abruptly. Using try-catch blocks, you can write code
to handle specific exceptions and provide alternative solutions. This prevents crashes
and helps make the code more robust and reliable.
46.
What is Visual C++?

Visual C++ is a programming language that is part of Microsoft's Visual Studio IDE. It is
primarily used for developing Windows applications. It has a range of features and
libraries that make it easier to create graphical user interfaces and perform system-
level programming.
Visual C++ supports both managed and unmanaged code and is commonly used for
developing high-performance applications.
47.
What is flush in C++?

In C++, "flush" is a function that ensures all data in the output buffer is printed
immediately. It can be used to enforce printing before a program exits or to clear the
output buffer. When using "cout", the "flush" function is often employed with the "endl"
manipulator.

Flushing is especially important when dealing with output involving user input or file
handling.
48.
How does the compiler deal with vTable and vptr in C++?

vTable is a table that contains the function pointers. Additionally, vptr is a singular
pointer to a vTable. Every class has a vTable; therefore, every object contains a vptr. The
C++ compiler, to maintain and use vptr and vTable, adds some additional code to two
places:

Constructor

vptr is set up by this code in every constructor: Of the object that is being made to point
to the class's vTable

Polymorphic Function Call

The compiler adds code to look for vptr using the base class pointer or reference at
every site where a polymorphic call is performed. Once the vptr has been properly
obtained, the vTable of a derived class may be accessed. The vTable is used to obtain
and call the address of the derived class method display().

This C++ interview question can show the interviewer the depth of your knowledge in
the language.
1.
What is a class in C++?

In C++, a class is a user-defined data type that contains both data members and member
functions. It provides encapsulation, which means that it bundles data and functions
that operate on the data in a single entity.

Classes can be used to create objects, which are instances of the class. By using classes,
C++ enables the creation of complex data types that are more organized and easier to
manage.
2.
What is an inline function in C++?

An inline function in C++ is one that the compiler places the code of directly into the
code of the calling function at the point where the function is called. This can result in
improved performance since no overhead is incurred in the function call routine.

Here is an example of an inline function in C++:

3.
What is a friend function in C++?

A friend function in C++ is a function that is granted access to the private and protected
members of a class. These functions are not members of the class, but can access its
private and protected members as if they were.

Here is an example of a class with a friend function:


4.
What is a vector in C++?

In C++, a vector is a dynamic array that can store elements of any data type. It is a
container that provides a flexible way of storing and manipulating data.

To use vectors in C++, you need to include the header file. Here is an example of how to
declare and use a vector:
5.
Can you explain how Vectors in C++ differ from arrays?
6.
What is the scope resolution operator in C++?

The scope resolution operator in C++ is denoted by :: and is used to access variables,
functions, or classes that are defined within a specific namespace or class. It allows you
to differentiate between entities with the same name that may exist in different
namespaces or classes. The operator helps in resolving naming conflicts and provides
the ability to access specific entities within a larger scope.
7.
How to sort a vector in C++?

Here is an example code that sorts a vector of integers in ascending order:


8.
What is a pure virtual function in C++?

In C++, a pure virtual function is one that is declared in a base class but does not provide
an implementation. This means that any class that inherits from this base class must
provide an implementation for the pure virtual function. It serves as a contract,
ensuring that derived classes provide their own implementation of the function.

Here is an example of using pure virtual functions in C++:


9.
How to use a map in C++?

You first need to include the header file in order to use the map container in C++. Here is
an example:
10.
How to empty a vector in C++?

You can use the clear() function to empty a vector in C++. Here is an example:
11.
How to remove segmentation fault in C++?

Step 1: Compile with debug symbols

Compile your application with the -g flag to include debug symbols in the binary file.
This provides additional information that will help you pinpoint the source of the
segmentation fault.

Step 2: Use a debugger (gdb)

a. Open a terminal and run the gdb command to start the GNU Debugger.
b. In the gdb console, load your application's binary file using the file command followed
by the path to your binary executable.
c. Execute your program within the debugger using the run command. This will launch
your application under gdb's control.

Step 3: Analyze the program

a. As your program runs, gdb will stop when it encounters the segmentation fault.
b. Examine the backtrace using the bt command to see the sequence of function calls
that led to the fault.
c. Use the list command to display the relevant source code lines around where the
segmentation fault occurred.

Step 4: Identify faulty code

a. Step through your code using commands like next or step. This allows you to navigate
line by line and observe the program's behavior.
b. Watch variable values using the print command to monitor their changes during
execution.

Step 5: Check for common causes

a. Look for memory-related issues like accessing arrays out of bounds or dereferencing
null pointers. These are common causes of segmentation faults.
b. Check for uninitialized variables that might lead to undefined behavior.

Step 6: Fix the code

a. Once you've identified the problematic code, make necessary corrections to address
the issues you found.
b. Re-compile the application after making changes.

Step 7: Repeat and test

a. If the segmentation fault persists, repeat steps 3-6 to ensure all issues are resolved.
b. Test your program thoroughly to ensure the segmentation fault has been successfully
eliminated.
12.
How to initialize a 2d vector in C++?

There are multiple approaches to initialize a 2D vector in C++. One common approach is
to use the constructor of the vector class to specify the initial size and default values for
each element.

You can initialize a 2D vector in C++ by specifying the number of rows and columns and
using nested loops to fill it with values.

Here's an example:
In this example, we first declare the number of rows and columns, then create a 2D
vector named matrix with the specified dimensions. We use nested loops to fill the
vector with values, and finally, we access and print the elements.
13.
What is OOP in C++?

Object-Oriented Programming (OOP) is a fundamental programming paradigm used in


C++ and many other programming languages. It revolves around the concept of objects,
which are instances of classes, and is designed to enhance code organization,
reusability, and maintainability.

The four essentials of OOPs are Inheritance, Polymorphism, Encapsulation, and


Abstraction. C++ is considered an object-oriented programming language due to its
support and integration of OOP concepts within its syntax.
14.
What is a constructor in C++?
A constructor in C++ is a special member function that is used to initialize objects of a
class. It is automatically called when an object of a class is created. It has the same name
as the class. Constructors can have parameters or no parameters.

Here is an example of a constructor in C++:

15.
What is inheritance in C++?

In C++, inheritance is a feature that allows a class to inherit properties and behavior
from another class. This is useful because it promotes code reuse and allows for the
creation of a class hierarchy.

Here's an example of how inheritance is implemented in C++:


16.
What is an object in C++?

In C++, an object is an instance of a class. It is a variable that combines data fields and
functions, known as member variables and member functions, respectively. Objects are
used to model real-world entities or concepts.

Here is an example of creating and using an object in C++:


17.
What is encapsulation in C++?

Encapsulation in C++ is a fundamental concept that allows data and methods to be


bundled together within a class. It promotes data hiding as the internal workings of an
object can be hidden from external entities. This increases code modularity and reduces
dependencies by providing a clear separation between interface and implementation.

Encapsulation ensures that data is accessed and modified only through defined
methods, enhancing security and preventing undesired modifications.
18.
What is an abstraction in C++?

An abstraction in C++ is a way to represent complex systems or concepts in a simplified


manner. It allows programmers to define user-defined types or classes that encapsulate
data and functions, hiding the implementation details from users.

Abstractions help in managing complexity, promoting code reusability, and enhancing


modularity. They enable developers to work at a higher level of abstraction, making
code easier to understand and maintain.
19.
What is a member function in C++?
A member function in C++ is a function that is declared inside a class. It belongs to the
class and can access the class's member variables and other member functions. Here's
an example of a class with a member function:

20.
What is a virtual base class in C++?

A virtual base class in C++ is a class that is designed to be inherited by other classes. It is
used to avoid multiple instances of a base class when multiple derived classes inherit
from it. By making the base class virtual, only one instance of the base class will be
present in the derived classes. This helps prevent conflicts and improve code
organization.
21.
How to access private members of a class in C++?

You can access private members of a class in C++ by using public member functions. The
most common approach is to define public member functions in the class that provide
access to the private members. These functions are often called "getters" and "setters"
and are used to retrieve or modify the values of private member variables.

Example:
22.
How to call a base class constructor from a derived class in C++?

You can use the constructor initializer list in the derived class's constructor to call a
base class constructor from a derived class in C++.

The syntax is DerivedClass::DerivedClass(arg1, arg2): BaseClass(arg1) { /* constructor


body */ }.

Here, arg1 is passed to the base class constructor. You can also pass additional
arguments to the derived class's constructor.
23.
What is an abstract class in C++?

An abstract class in C++ is a class that cannot be instantiated. It is only meant to serve as
a base for other classes. An abstract class can have both regular and pure virtual
functions.

Regular virtual functions provide a default implementation that can be overridden in


derived classes, while pure virtual functions must be implemented by derived classes.
This allows for polymorphism and flexibility in the design of a program.
24.
What is containership in C++?

In C++, containership refers to the concept of one class being contained within another
class. The contained class, referred to as the member class, can access the member
functions and data of the container class.

This relationship is often referred to as a “has-a” relationship because an object of the


contained class “has-a” relationship with an object of the containing class. The
containing class can then manipulate or access the properties of the contained class.
25.
What is data hiding in C++?

Data hiding is a technique in C++ programming where the internal data of an object is
hidden from the outside world in order to ensure increased security, better
maintainability, and flexibility of code. It is achieved through the use of access specifier
keywords such as private, public, and protected.

Objects that implement data hiding can only be accessed through a set of methods,
making it impossible to bypass the object and access the data directly.
26.
What is runtime polymorphism in C++?
Runtime polymorphism in C++ refers to the ability of a derived class object to be treated
as an object of its base class at runtime. It allows different objects to be accessed and
manipulated using a common interface provided by their base class.

In C++, runtime polymorphism is achieved through virtual functions and dynamic


binding. When a member function of a base class is declared as virtual, it can be
overridden in derived classes. The decision of which function to call is made at runtime
based on the actual type of the object.
27.
What is a copy constructor in C++?

In C++, a copy constructor is a special constructor that is used to create a new object as
a copy of an existing object. It is invoked when a new object is being created from an
existing object of the same class.

The copy constructor has the following signature:

ClassName(const ClassName& source);

Here, ClassName is the name of the class for which the copy constructor is defined. The
copy constructor takes a reference to an object of the same class (const ClassName&
source) as its parameter.

The primary purpose of the copy constructor is to create a new object that is a replica of
the source object. It initializes the new object's member variables by copying the values
from the corresponding member variables of the source object. The copy constructor is
typically used when objects are passed by value or when objects are being returned
from a function.

If a class does not have a user-defined copy constructor, the compiler generates a
default copy constructor that performs a memberwise copy. However, if the class
contains pointers or dynamically allocated memory, a shallow copy (default copy
constructor) may lead to issues such as double deletion or sharing the same memory
address between objects. In such cases, it is necessary to define a custom copy
constructor that performs a deep copy, creating new memory resources for the copied
object.

Here's an example of a copy constructor:


In the example, obj2 is created as a copy of obj1 using the copy constructor. The
member variable data of obj2 will have the same value as obj1 after the copy is made.
28.
How is modularity introduced in C++?

In C++, modularity can be introduced through the use of various language features and
programming techniques.

Here are some ways modularity can be achieved in C++:

Header files: Header files contain declarations of classes, functions, variables, and other
entities, allowing them to be shared across multiple source files. By separating the
declaration (interface) from the definition (implementation), header files promote
modularity by allowing different parts of a program to work independently.

Namespaces: Namespaces provide a way to group related entities and avoid naming
conflicts. By placing related code and definitions within a namespace, you can create
modular units that can be easily reused or combined with other code.

Classes and objects: C++ supports OOP concepts, allowing you to define classes that
encapsulate data and behavior. Classes promote modularity by bundling related data
and operations together, providing a clear interface for interacting with the data.

Function modularity: Functions allow you to encapsulate a block of code that performs
a specific task. By breaking down your program into smaller functions, you can achieve
modularity. This is because each function can focus on a specific task and be reused or
modified independently.

Separate compilation: C++ supports separate compilation, where each source file can be
compiled independently into object files and then linked together to create the final
executable. This approach enables modularity by allowing you to compile and maintain
different modules separately, reducing the compilation time when changes are made to
a specific module.

Dynamic linking: C++ supports dynamic linking which allows modules to be compiled
into separate shared libraries that can be loaded and linked at runtime. Dynamic linking
promotes modularity by enabling the creation of modular libraries that can be
independently updated or replaced without recompiling the entire program.

Template metaprogramming: C++ templates allow for generic programming where


algorithms and data structures can be defined in a generic way and instantiated with
different types at compile-time. Template metaprogramming promotes modularity by
allowing code to be written once and reused for multiple types. This reduces duplication
and enhances code modularity.
29.
What is the size of an empty class in C++?

In C++, the size of an empty class is not zero. The C++ standard requires that every
object in the language has a unique memory address, even empty classes. Therefore, an
empty class must have a non-zero size to ensure that each instance of the class has a
distinct address.

The minimum size of an empty class is typically one byte. This ensures that each object
has a unique address within the memory space. However, the size of an empty class may
be larger than one byte due to various factors such as alignment requirements imposed
by the compiler or additional data members introduced by the compiler for debugging
or bookkeeping purposes.

Here's an example to illustrate the size of an empty class:

1.
How to input a string in C++ with spaces?
To incorporate spaces while entering a string in C++, use the following code:

2.
How to dynamically allocate a 2D array in C++?

There are various techniques to dynamically assign memory to a 2D array. One


approach is outlined below:

3.
How to use the goto statement in C++ ?
The goto statement is a branching statement that allows you to transfer control to a
labeled statement within the same function. However, it is generally considered bad
practice to use goto because it can make code harder to understand and maintain.

It is recommended to use structured programming constructs like loops and conditional


statements instead.

Here is the syntax for using the goto statement in C++:

4.
What is function overriding in C++?

Function overriding occurs when a function with the same name exists in both the
parent and child classes.
5.
What is bool in C++?

In C++, "bool" is a fundamental data type that represents boolean values. It is used to
store either "true" or "false" values, indicating the result of a logical condition. The
"bool" data type is particularly useful in decision-making and branching statements,
such as if statements and while loops, where the execution of certain code blocks
depends on the evaluation of a condition.

The "bool" type can only hold two values: "true" or "false". In memory, a "bool" typically
occupies one byte, although the C++ standard does not specify the exact size. The value
"true" represents a logical true condition, while "false" represents a logical false
condition.

You can declare a "bool" variable by using the "bool" keyword, followed by the variable
name. Here's an example:
These are just some basic examples of how "bool" can be used in C++. It's an essential
data type for handling logical conditions and controlling the flow of a program based on
those conditions.
6.
How to set decimal places in C++ ?

In C++, you can control the number of decimal places displayed for a floating-point
value using the std::setprecision manipulator from the < iomanip > library.

Here's an example of how to set the decimal places:

In this example, std::fixed sets the decimal format to fixed-point notation, and
std::setprecision(2) sets the number of decimal places to 2. You can modify the value
passed to setprecision to change the desired number of decimal places.

The output of the above code will be:

3.14

Remember to include the header to use std::setprecision and other formatting


manipulators.
There are five functions to limit the decimal places in C++: floor(), ceil(), trunc(),
round() and setprecision(). Out of these five, only the setprecision() function is used for
setting the decimal places to put as output. All the functions are mentioned in the above
sample code.
7.
How to get absolute value in C++?

In C++, you can use the abs() function from the header to obtain the absolute value of a
number. The abs() function works with integer types such as int, long, and long long.
Here's an example:

If you're working with floating-point numbers, you can use the fabs() function from the
header. Here's an example:
Remember to include the appropriate header ( for integers, for floating-point) at the
beginning of your program to use the respective absolute value function.
8.
How to concatenate a string in C++?

You can concatenate a string in C++ using the append() function, which is a member
function of the std::string class. It allows you to concatenate two std::string objects.
Here's an example:
9.
How to convert char to int in C++ ?

To convert a char to int in C++, you can use the std::stoi function. Here's some example
code:

In this code, we first declare a char variable my_char and assign it the value '8'. Then, we
use std::stoi to convert my_char to an int, store the result in my_int, and output both
variables to the console. We wrap my_char in a std::string constructor in order to
provide std::stoi with a string argument.
10.
How to generate random numbers in C++ with a range?

To generate random numbers in C++ with a specific range, use the rand() function along
with a bit of arithmetic. Here's an example code snippet that demonstrates how to do
this:

11.
How to find absolute value in C++?

To find the absolute value of a number in C++, you can use the abs() function from the
library. Here's an example of how to use it in code:
In the above code, we include the library to access the abs() function. We then declare a
variable num and initialize it with a negative value. We use the abs() function to find its
absolute value and store it in the absNum variable. Finally, we use cout to print the
absolute value to the console.
Make sure to include the library and use the std:: namespace to access the abs()
function.
12.
How to write a class in C++?

To write a class in C++, you need to define the class structure, its data members, and
member functions. Here's a basic example:
13.
How to use the strcmp function in C++?

To use the strcmp function in C++, you need to include the header file. The strcmp
function is used to compare two null-terminated strings lexicographically.

Here is an example:
14.
How to write to a file in C++?

To write to a file in C++, use the ofstream class from the < fstream > header[1]. Here is
an example of how to write to a file:

15.
What is stringstream in C++?

A stringstream in C++ is a class that allows you to associate a string object with a
stream, similar to how cin and cout are associated with input and output streams
respectively. It allows you to perform input and output operations on the associated
string as if it were a stream.

You need to include the sstream header file to use stringstream. It is particularly useful
for parsing input as it provides methods such as clear() to clear the stream and basic
input and output operations.
16.
You are working on a C++ program that takes user input and performs certain
calculations. You notice that the program crashes when the user enters non-numeric
input. How would you handle this situation?

You can use exception handling for this situation. Wrap the user input code in a try
block and catch any exceptions that may occur. You can catch the std::invalid_argument
exception to handle non-numeric input. In the catch block, you can display an error
message and prompt the user for valid input.
17.
You are tasked with sorting a large array of integers in C++. Which sorting algorithm
would you choose and why?

The choice of sorting algorithm depends on the specific requirements of the task.
However, if the array is large and the time complexity is a concern, a good choice would
be Quicksort. It has an average time complexity of O(n log n) and performs well in
practice. It is also an in-place sorting algorithm, which means it doesn't require
additional memory beyond the array being sorted.
18.
You are implementing a C++ class that needs to prevent copying of objects. How would
you achieve this?

To prevent copying of objects in C++, you can define the copy constructor and
assignment operator as private or delete them. This prevents other code from making
copies of objects of that class. For example:

19.
You are debugging a C++ program and suspect that a memory leak is occurring. How
would you verify and locate the memory leak?
To verify and locate a memory leak in a C++ program, you can use a memory profiling
tool such as Valgrind (for Unix-like systems) or the CRT Debug Heap functions (for
Windows). These tools can track memory allocations and deallocations. They report any
leaked memory along with the corresponding stack traces, which helps you identify the
source of the leak.
20.
You are working on a C++ project that requires handling dates and time. How would you
handle date and time operations in C++?

You can use the library for date and time operations. It provides the
std::chrono::system_clock class for accessing the current system time, as well as other
classes for representing durations and time points. By using these classes, you can
perform various operations like adding or subtracting durations, comparing time
points, and formatting dates and times.
21.
You are developing a C++ application that requires multi-threading. How would you
handle concurrent programming in C++?

In C++, you can use the library to handle multi-threading. The library provides the
std::thread class, which allows you to create and manage threads. You can use mutexes
(std::mutex) and condition variables (std::condition_variable) to synchronize access to
shared resources and communicate between threads.

Additionally, C++11 introduced the std::atomic type for atomic operations which can be
used to handle shared data in a thread-safe manner.

22.
You are working on a C++ project and need to read and write binary data to files. How
would you accomplish this?

You can use the < fstream > library to read and write binary data to files in C++. The
std::fstream class provides methods like read() and write() for binary input and output.
When reading, you can open the file in binary mode by specifying std::ios::binary as the
open mode. Similarly, when writing, you can use std::ios::binary to ensure binary data is
written correctly.

23.
You are optimizing a performance-critical section of a C++ program and want to reduce
memory allocations and deallocations. How would you approach this optimization?

To reduce memory allocations and deallocations in a performance-critical section of a


C++ program, you can consider using object pools or memory pools. Instead of
allocating and deallocating memory dynamically, you can preallocate a fixed-size pool of
objects or a contiguous block of memory and reuse them as needed. This reduces the
overhead of memory management and can improve performance by eliminating the
cost of frequent allocations and deallocations.

You might also like