C++ Inv
C++ Inv
What is C++?
Hide Answer
C++ is a powerful imperative, general-purpose programming language. It was developed as an extension of the
C programming language and provides additional features like object-oriented programming and templates.
C++ is used to develop various applications including operating systems, games, and high-performance
software. Its syntax is similar to C which makes it easy for C programmers to transition to C++.
2.
What is a namespace in C++?
Hide Answer
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.
3.
What is operator overloading in C++?
Hide Answer
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++?
Hide Answer
Learning C++ can seem daunting, but there are effective ways to pick it up. Here's a roadmap to get started:
6.
What is a template in C++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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:
which specifies that the function takes an integer argument and returns an integer value.
9.
How are function arguments passed in C++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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.
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++?
Hide Answer
STL stands for Standard Template Library and it's a powerful library in C++ for working with sequences of
data.
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++?
Hide Answer
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++?
Hide Answer
Include the < string > header in your program by using the #include preprocessor directive:
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++?
Hide Answer
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++?
Hide Answer
19.
How to clear the screen in C++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++ ?
Hide Answer
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?
Hide Answer
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.
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++?
Hide Answer
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?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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 (>=)
Logical operators:
Bitwise operators:
Subscript operator:
It's important to note that not all operators can be overloaded in C++. These include:
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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?
Hide Answer
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:
Clang:
MinGW-w64:
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++?
Hide Answer
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?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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
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.
Looking for remote developer job at US companies?
Work at Fortune 500 companies and fast-scaling startups from the comfort of your home
Apply Now
1.
What is a class in C++?
Hide Answer
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++?
Hide Answer
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.
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.
4.
What is a vector in C++?
Hide Answer
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?
Hide Answer
6.
What is the scope resolution operator in C++?
Hide Answer
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++?
Hide Answer
8.
What is a pure virtual function in C++?
Hide Answer
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.
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++?
Hide Answer
You can use the clear() function to empty a vector in C++. Here is an example:
11.
How to remove segmentation fault in C++?
Hide Answer
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.
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.
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.
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.
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.
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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.
15.
What is inheritance in C++?
Hide Answer
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.
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.
17.
What is encapsulation in C++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++.
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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.
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.
In C++, modularity can be introduced through the use of various language features and programming
techniques.
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++?
Hide Answer
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.
The output of this program will typically be Size of EmptyClass: 1 bytes, indicating that an empty class has a
size of at least one byte.
Looking for remote developer job at US companies?
Work at Fortune 500 companies and fast-scaling startups from the comfort of your home
Apply Now
1.
How to input a string in C++ with spaces?
Hide Answer
To incorporate spaces while entering a string in C++, use the following code:
2.
How to dynamically allocate a 2D array in C++?
Hide Answer
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++ ?
Hide Answer
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.
4.
What is function overriding in C++?
Hide Answer
Function overriding occurs when a function with the same name exists in both the parent and child classes.
5.
What is bool in C++?
Hide Answer
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++ ?
Hide Answer
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.
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.
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++?
Hide Answer
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++?
Hide Answer
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++ ?
Hide Answer
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?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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?
Hide Answer
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?
Hide Answer
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?
Hide Answer
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?
Hide Answer
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++?
Hide Answer
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++?
Hide Answer
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?
Hide Answer
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?
Hide Answer
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.