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

What Is C++? What Are The Advantages of C++?

Uploaded by

Igor Almeida
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

What Is C++? What Are The Advantages of C++?

Uploaded by

Igor Almeida
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 22

1. What is C++? What are the advantages of C++?

C++ is an object-oriented programming language that was introduced to


overcome the jurisdictions where C was lacking. By object-oriented we mean
that it works with the concept of polymorphism, inheritance, abstraction,
encapsulation, object, and class.

Advantages of C++:

C++ is an OOPs language that means the data is considered as objects.

C++ is a multi-paradigm language; In simple terms, it means that we can


program the logic, structure, and procedure of the program.

Memory management is a key feature in C++ as it enables dynamic memory


allocation

It is a Mid-Level programming language which means it can develop games,


desktop applications, drivers, and kernels

2. What are the different data types present in C++?

3. Define ‘std’?

‘std’ is also known as Standard or it can be interpreted as a namespace. The


command “using namespace std” informs the compiler to add everything
under the std namespace and inculcate them in the global namespace.

4. What are references in C++?


In C++, references are an alternative way to create an alias for another
variable. A reference acts as a synonym for a variable, allowing you to
access the variable directly without any additional syntax.

Syntax:

int GFG = 10;

// reference variable

int& ref = GFG;

5. What do you mean by Call by Value and Call by Reference?

In this programming language to call a function we have 2 methods: Call by


Value and Call by Reference

Call by Value:

A copy of a variable is passed.

The changes made in the function are never reflected outside the function on
the variable. In short, the original value is never altered in Call by Value.

Calling a function by sending the values by copying variables

Passed actual and formal parameters are stored in different memory


locations. Therefore, making Call by Value a little memory insufficient

Call by Reference:

A variable itself is passed fundamentally.

Calling a function by sending the address of the passed variable.

The changes made in the functions can be seen outside the function on the
passed function. In short, the original value is altered in Call by reference.

Passed actual and formal parameters are stored in the same memory
location. Therefore, making Call by Reference a little more memory efficient.

6. Define token in C++

A token is the smallest individual element of a program that is understood by


a compiler. A token comprises the following:

Keywords – That contain a special meaning to the compiler

Identifiers – That hold a unique value/identity


Constants – That never change their value throughout the program

Strings – That contains the homogenous sequence of data

Special Symbols – They have some special meaning and cannot be used for
another purpose; eg: [] () {}, ; * = #

Operators – Who perform operations on the operand

7. What is the difference between C and C++?

C: It is a procedural programming language. In simple words, it does not


support classes and objects

C++: It is a mixture of both procedural and object-oriented programming


languages. In simple words, it supports classes and objects.

8. What is the difference between struct and class?

Struct:

Members are public by default.

Often used for Plain Old Data (POD) structures, or simple data grouping.

Class:

Members are private by default.

Suitable for complex objects that may include methods, constructors, and
destructors.

9. What is the difference between reference and pointer?

Reference:

The value of a reference cannot be reassigned

It can never hold a null value

It cannot work with arrays

To access the members of class/struct it uses a ‘ . ‘

The memory location of reference can be accessed easily or it can be used


directly
Pointer:

The value of a pointer can be reassigned

It can hold or point at a null value and be termed as a nullptr or null pointer

It can work with arrays

To access the members of class/struct it uses a ‘ -> ‘

The memory location of a pointer cannot be accessed easily as we have to


use a dereference ‘ * ‘

10. What is the difference between function overloading and operator


overloading?

11. What is the difference between an array and a list?


12. What is the difference between a while loop and a do-while
loop?

13. Discuss the difference between prefix and postfix?


14. What is the difference between new and malloc()?

15. What is the difference between virtual functions and pure virtual
functions?
16. What are classes and objects in C++?

A class is a user-defined data type where all the member functions and data
members are tailor-made according to demands and requirements in
addition to which these all can be accessed with the help of an object. To
declare a user-defined data type we use a keyword class.

An object is an instance of a class and an entity with value and state; In


simple terms, it is used as a catalyst or to represent a class member. It may
contain different parameters or none.

Note: A class is a blueprint that defines functions which are used by an


object.

17. What is Function Overriding?

When a function of the same name, same arguments or parameters, and


same return type already present/declared in the base class is used in a
derived class is known as Function Overriding. It is an example of Runtime
Polymorphism or Late Binding which means the overridden function will be
executed at the run time of the execution.

18. What are the various OOPs concepts in C++?

 Classes: It is a user-defined datatype

 Objects: It is an instance of a class

 Abstraction: It is a technique of showing only necessary details

 Encapsulation: Wrapping of data in a single unit

 Inheritance: The capability of a class to derive properties and


characteristics from another class

 Polymorphism: Polymorphism is known as many forms of the same


thing

19. Explain inheritance

The capability or ability of a class to derive properties and characteristics


from another class is known as inheritance. In simple terms, it is a system or
technique of reusing and extending existing classes without modifying them.

20. When should we use multiple inheritance?

Multiple inheritances mean that a derived class can inherit two or more
base/parent classes. It is useful when a derived class needs to combine
numerous attributes/contracts and inherit some, or all, of the implementation
from these attributes/contracts. To take a real-life example consider your
Parents where Parent A is your DAD Parent B is your MOM and Chid C is you.

21. What is virtual inheritance?

Virtual inheritance is a technique that ensures only one copy of a base


class’s member variables is inherited by grandchild-derived classes. Or in
simple terms, virtual inheritance is used when we are dealing with a situation
of multiple inheritances but want to prevent multiple instances of the same
class from appearing in the inheritance hierarchy.
22. What is polymorphism in C++?

Polymorphism is known as many forms of the same thing. In simple terms,


we can say that Polymorphism is the ability to display a member function in
multiple forms depending on the type of object that calls them.

In other words, we can also say that a man can be an employee to someone,
a son of someone, a father of someone, and a husband of someone; this is
how polymorphism can be projected in real life.

There is 2 type of polymorphism:

1. Compile Time Polymorphism

 Function Overloading

 Operator Overloading

2. Run Time Polymorphism

 Function Overriding

 Virtual Function

23. What are the different types of polymorphism in C++?

There is 2 type of polymorphism

Compile Time Polymorphism or Static Binding

This type of polymorphism is achieved during the compile time of the


program which results in it making a bit faster than Run time. Also,
Inheritance is not involved in it. It is comprised of 2 further techniques:

Function Overloading: When there are multiple functions with the same
name but different parameters then this is known as function overloading.
Operator Overloading: It is basically giving practice of giving a special
meaning to the existing meaning of an operator or in simple terms redefining
the pre-redefined meaning

Run-Time Polymorphism or Late Binding

Run-time polymorphism takes place when functions are invoked during run
time.
Function Overriding: Function overriding occurs when a base class
member function is redefined in a derived class with the same arguments
and return type.

Output:

Function of derived class


24. Compare compile-time polymorphism and Runtime
polymorphism

25. Explain the constructor in C++.

A constructor is a special type of member function of a class, whose name is


the same as that of the class by whom it is invoked and initializes value to
the object of a class.

There are 3 types of constructors:

A. Default constructor: It is the most basic type of constructor which


accepts no arguments or parameters. Even if it is not called the compiler
calls it automatically when an object is created.

B. Parameterized constructor: It is a type of constructor which accepts


arguments or parameters. It has to be called explicitly by passing values in
the arguments as these arguments help initialize an object when it is
created. It also has the same name as that of the class.

Also, It is used to overload constructors.

Example:
Output

G.x = 10, G.y = 15

C. Copy Constructor: A copy constructor is a member function that


initializes an object using another object of the same class. Also, the Copy
constructor takes a reference to an object of the same class as an argument.

26. What are destructors in C++?

Destructors are members of functions in a class that delete an object when


an object of the class goes out of scope. Destructors have the same name as
the class preceded by a tilde (~) sign. Also, destructors follow a down-to-
top approach, unlike constructors which follow a top-to-down.

Syntax:
~constructor_name(); // tilde sign signifies that it is a destructor

27. What is a virtual destructor?

When destroying instances or objects of a derived class using a base class


pointer object, a virtual destructor is invoked to free up memory space
allocated by the derived class object or instance.

Virtual destructor guarantees that first the derived class’ destructor is called.
Then the base class’s destructor is called to release the space occupied by
both destructors in the inheritance class which saves us from the memory
leak. It is advised to make your destructor virtual whenever your class is
polymorphic.

28. Is destructor overloading possible? If yes then explain and if no


then why?

The simple answer is NO we cannot overload a destructor. It is mandatory to


only destructor per class in C++. Also to mention, Destructor neither take
arguments nor they have a parameter that might help to overload.

29. Which operations are permitted on pointers?

Pointers are the variables that are used to store the address location of
another variable. Operations that are permitted to a pointer are:

1. Increment/Decrement of a Pointer

2. Addition and Subtraction of integer to a pointer

3. Comparison of pointers of the same type

30. What is the purpose of the “delete” operator?

The delete operator is used to delete/remove all the


characteristics/properties from an object by deallocating its memory;
furthermore, it returns true or false in the end. In simple terms, it destroys or
deallocates array and non-array(pointer) objects which are created by new
expressions.
31. How delete [] is different from delete?

32. What do you know about friend class and friend function?

A friend class is a class that can access both the protected and private
variables of the classes where it is declared as a friend.

A friend function is a function used to access the private, protected, and


public data members or member functions of other classes. It is declared
with a friend keyword. The advantage of a friend function is that it is not
bound to the scope of the class and once it is declared in a class,
furthermore to that, it cannot be called by an object of the class; therefore it
can be called by other functions. Considering all the mentioned points we
can say that a friend function is a global function.

33. What is an Overflow Error?

Overflow Error occurs when the number is too large for the data type to
handle. In simple terms, it is a type of error that is valid for the defined but
exceeds used the defined range where it should coincide/lie.

For example, the range of int data type is –


2,147,483,648 to 2,147,483,647 and if we declare a variable of
size 2,247,483,648 it will generate a overflow error.

34. What does the Scope Resolution operator do?

A scope resolution operator is denoted by a ‘::‘ symbol. Just like its name this
operator resolves the barrier of scope in a program. A scope resolution
operator is used to reference a member function or a global variable out of
their scope furthermore to which it can also access the concealed variable or
function in a program.

Scope Resolution is used for numerous amounts of tasks:

1. To access a global variable when there is a local variable with the same
name

2. To define the function outside the class

3. In case of multiple inheritances

4. For namespace
35. What are the C++ access modifiers?

The access restriction specified to the class members( whether it is member


function or data member) is known as access modifiers/specifiers.

Access Modifiers are of 3 types:

1. Private – It can neither be accessed nor be viewed from outside the


class

2. Protected – It can be accessed if and only if the accessor is the


derived class

3. Public – It can be accessed or be viewed from outside the class

36. Can you compile a program without the main function?

Yes, it is absolutely possible to compile a program without a main(). For


example Use Macros that defines the main

37. What is STL?

STL is known as Standard Template Library, it is a library that provides 4


components like container, algorithms, and iterators.
38. Define inline function. Can we have a recursive inline function in
C++?

An inline function is a form of request not an order to a compiler which


results in the inlining of our function to the main function body. An inline
function can become overhead if the execution time of the function is less
than the switching time from the caller function to called function. To make a
function inline use the keyword inline before and define the function before
any calls are made to the function.

Syntax:
inline data_type function_name()
{
Body;
}

The answer is No; It cannot be recursive.

An inline function cannot be recursive because in the case of an inline


function the code is merely placed into the position from where it is called
and does not maintain a piece of information on the stack which is necessary
for recursion.

Plus, if you write an inline keyword in front of a recursive function, the


compiler will automatically ignore it because the inline is only taken as a
suggestion by the compiler.

39. What is an abstract class and when do you use it?

An abstract class is a class that is specifically designed to be used as a base


class. An abstract class contains at least one pure virtual function. You
declare a pure virtual function by using a pure specifier(= 0) in the
declaration of a virtual member function in the class declaration

You cannot use an abstract class as a parameter type, a function return type,
or the type of an explicit conversion, nor can you declare an object of an
abstract class. However, it can be used to declare pointers and references to
an abstract class.

An abstract class is used if you want to provide a common, implemented


functionality among all the implementations of the component. Abstract
classes will allow you to partially implement your class, whereas interfaces
would have no implementation for any members whatsoever. In simple
words, Abstract Classes are a good fit if you want to provide implementation
details to your children but don’t want to allow an instance of your class to
be directly instantiated.

40. What are the static data members and static member functions?

The static data member of a class is a normal data member but preceded
with a static keyword. It executes before main() in a program and is
initialized to 0 when the first object of the class is created. It is only visible to
a defined class but its scope is of a lifetime.

Syntax:

static Data_Type Data_Member;

The static member function is the member function that is used to access
other static data members or other static member functions. It is also
defined with a static keyword. We can access the static member function
using the class name or class objects.

Syntax:

classname::function name(parameter);

41. What is the main use of the keyword “Volatile”?

Just like its name, things can change suddenly and unexpectantly; So it is
used to inform the compiler that the value may change anytime. Also, the
volatile keyword prevents the compiler from performing optimization on the
code. It was intended to be used when interfacing with memory-mapped
hardware, signal handlers, and machine code instruction.

42. Define storage class in C++ and name some

Storage class is used to define the features(lifetime and visibility) of a


variable or function. These features usually help in tracing the existence of a
variable during the runtime of a program.

Syntax:

storage_class var_data_type var_name;


43. What is a mutable storage class specifier? How can they be
used?

Just like its name, the mutable storage class specifier is used only on a class
data member to make it modifiable even though the member is part of an
object declared as const. Static or const, or reference members cannot use
the mutable specifier. When we declare a function as const, this pointer
passed to the function becomes const.

44. Define the Block scope variable.

So the scope of a variable is a region where a variable is accessible. There


are two scope regions, A global and block or local.

A block scope variable is also known as a local scope variable. A variable that
is defined inside a function (like main) or inside a block (like loops and if
blocks) is a local variable.

45. What is the function of the keyword “Auto”?

The auto keyword may be used to declare a variable with a complex type in a
straightforward fashion. You can use auto to declare a variable if the
initialization phrase contains templates, pointers to functions, references to
members, etc. With type inference capabilities, we can spend less time
having to write out things the compiler already knows. As all the types are
deduced in the compiler phase only, the time for compilation increases
slightly but it does not affect the runtime of the program.

46. Define namespace in C++.

Namespaces enable us to organize named items that would otherwise have


global scope into smaller scopes, allowing us to give them namespace scope.
This permits program parts to be organized into distinct logical scopes with
names. The namespace provides a place to define or declare identifiers such
as variables, methods, and classes.

47. When is void() return type used?

The void keyword, when used as a function return type, indicates that the
function does not return a value. When used as a parameter list for a
function, void indicates that the function takes no parameters. Non-Value
Returning functions are also known as void functions.

48. What is the difference between shallow copy and deep copy?

49. Can we call a virtual function from a constructor?


Yes, we can call a virtual function from a constructor. But it can throw an
exception of overriding.

50. What are void pointers?

Just like its name a void pointer is a pointer that is not associated with
anything or with any data type. Nevertheless, a void pointer can hold the
address value of any type and can be converted from one data type to
another.

You might also like