1. Explain what is OOP?
The most popular question in a C++ interview. Object-oriented programming (OOP) is a type of programming in which the programmer indicates the type of data for operations, functions, and data structures used in the code, and also creates relationships between objects.
In OOP, a data structure is an object that can include both data and functions. Object-oriented programming is mainly aimed at the realization of real entities. These include: abstraction, encapsulation, inheritance, polymorphism, etc.
2. What is the difference between
A common question in a C ++ interview. The #include operator is used in C ++ to include the source file or import file headers containing the declaration of functions and other constructions that will be shared in the program. The #import operator is a “micro-specific” operator used in binary libraries such as a DLL or Lib . It is very similar to #include , because it loads all the definitions of functions and the header from the DLL file, and the developer can use headers in the same way as in the case of #include .
The #include statement allows you to include the same file several times, and #import ensures that the preprocessor includes the file only once.
3. What is a static element?
Static is a keyword used to impart unique characteristics to an element. To store static elements, memory is allocated only once during the entire program life cycle. Such elements are similar to global variables, except for the scope of ( public , private ). With their help, you can limit its use.
Declared methods with the same name and parameters cannot be overloaded if any of them is static, plus a static function cannot be declared as const , volatile, or const volatile .
4. Vectors in C ++
Vectors are a kind of container for data structures that are arrays that can change their size. In the same way as arrays, vectors use adjacent storage cells for their elements, which means that vector elements can be accessed using offsets as efficiently as in arrays. But unlike arrays, their size can change dynamically, and the container itself automatically manages storage.
5. What is the difference between structure and class?
In C ++, the class is an extension of the structure used in PL. A class is a custom data type that associates data and dependent functions in a single block. The structure and class in C ++ are very different, because the structure has limited functionality and capabilities compared to the class. The structure is also a user-defined data type with a specific template and may contain both methods and classes. These two concepts differ in purpose: the class is used for data abstraction and further inheritance, and the structure is usually intended for grouping data.
6. Using a point in C ++
A point is most often a reference to a method or property of an object in OOP. The relationship between an object, attributes, and methods is indicated by a dot (“ . “) Established between them. Both the dot and the operator “ -> “ are used to refer to individual members of classes, structures, and unions. The dot operator is applied to the actual object defined in the class.
7. How is
new() different from
New () is a preprocessor, while malloc () is a method. The user does not need to allocate memory when using ” new “, and in malloc () , you must use the sizeof () function to allocate memory. “ New ” initializes the new memory to 0 , while malloc () stores a random value in the new allocated memory.
8. What is
One of the most popular questions in a C ++ interview. The keyword this is passed to all non-static methods as a hidden argument and is available as a local variable within all non-static methods. The this operator is a constant pointer that stores in memory a reference to the current object. It is not available in static functions, since they can be called without any object (using the name of the class).
9. What is the difference between an array and a list?
An array is a collection of homogeneous elements, and a list is heterogeneous.
The array memory allocation is always static and continuous, and the list is all dynamic and random.
In the case of arrays, the user does not need to control the allocation of memory, and when using lists it is necessary, because of its dynamism.
10. What is dynamic and static typing?
Statically typed languages are languages in which type checking is performed at compile time, and in dynamically typed languages it is done at runtime. Since C ++ is a statically typed language, the user must tell the compiler what type of object it is working with at compile time.
11. What is meant by a delegate?
A delegate is an object acting on behalf of, or paired with another
object that has detected an event during the execution of a program. Often, this is simply a pointer to a function that uses callbacks.
Delegates can be saved by the user. As a rule, they are saved automatically, so you can avoid unnecessary storage cycles and do not record again.
12. Mutator method. What is it?
The access function creates an element of the type protected or private for external use, but it does not give permission to edit or change it. Changing a protected data element always requires calling a mutator function. The mutator provides direct access to the protected data, so when creating the function of the mutator and accessor, you need to be very careful.
13. Explain what is single and multiple inheritance?
Inheritance allows you to define a class that has a specific set of
characteristics (for example, methods and instance variables), and then
create other classes derived from this class. The derived class inherits all the functions of the parent class and usually adds some of its own functions.
Multiple inheritance is a feature of C ++, where one class can inherit objects and methods of several classes. Constructors of inherited classes are called in the same order in which the base classes are inherited.
14. Can a built-in function be recursive?
Although the user can call the built-in function from itself, the compiler will not be able to generate the built-in code, since it will not be able to determine the depth of the recursion during compilation. A compiler with a good optimizer can embed recursive calls up to some fixed depth at compile time, as well as insert non-recursive calls for cases when the actual depth is exceeded in runtime.
15. Explain what is encapsulation?
Among the questions on a C ++ interview on this, almost all newcomers “pour in”. Encapsulation is a mechanism for combining data and functions used to hide implementation details from the user. In this case, the user can perform only a limited set of operations with hidden members of the class using internal methods. This PLO concept is often used to hide the internal representation or state of an object from the “outside world”.
16. What is abstraction? How does it differ from encapsulation?
Abstraction is a mechanism for providing only interfaces, hiding information about implementation and “showing” the necessary details of the functionality. Encapsulation can be understood as hiding properties and methods from the outside world. The class is the best example of encapsulation in C ++.
17. What are built-in functions? What is the syntax for the definition?
A built-in function is a function declared with the inline keyword . Whenever a built-in function is called, its full code is substituted into the place of the call. The compiler performs this substitution at compile time. Built-in function can improve code efficiency.
Syntax to define a function:
18. What is the difference between a pointer and a link in C ++?
The pointer can be reassigned n-times, while the link cannot be reassigned after the bind. Pointers can point to NULL , whereas a link always refers to an object. The programmer can not get the address of the link, as it is possible with pointers, but you can take the address of the object to which the link points, and perform actions with it.
19. Why is C ++ a mid-level programming language?
Almost all C code will work successfully in C ++, but this does not give a reason to consider it as a superset of C. C ++ can be called a middle level language, since it has the features of low and high-level YaB at the same time.
20. Explain what is polymorphism?
One of the most important questions in a C ++ interview. Polymorphism is the ability of a function to work with different types of data. Usually in Yap we are talking about two types of polymorphism:
- Subtype polymorphism – the calling code uses an object based only on its interface, without knowing the actual type.
- Parametric polymorphism allows a pattern defined in a class of a particular type to be defined in another type.
21. What is a class definition?
The class describes the behavior and properties common to any particular object. This is a custom data type that contains its own data and functions that can be accessed and used by creating an instance of this class. The definition of a class means the description of the schema of elements for a data type or object. It begins with the class keyword, followed by the name and body of the class, enclosed in curly braces. The class definition must always be followed by a semicolon or a list of announcements.
22. What do the keywords
volatile tells the compiler that the variable may change without its knowledge. These variables are not cached by the compiler and therefore are always read from memory.
mutable can be used for class variables. Such variables may vary from within the class functions.
23. What is a virtual function?
A virtual function is a method that is used in runtime to replace the implemented functionality provided by the base class. Virtual functions are always used with inheritance and are called according to the type of object pointed to or referenced by an object, and not according to the type of pointer or reference.
The virtual keyword is used to create a virtual method.
24. What is meant by overloading functions and operators?
A common question in a C ++ interview. C ++ allows you to specify multiple definitions of functions or operators in the same scope for normal operation in custom classes. This is called function and operator overloading.
Overloaded functions are not only functions with the same name, but also with different types and number of passed parameters. Here are some classes in which you can overload, for example, arithmetic operators: Complex Number , Fractional Number , Big Integer .
25. What is function override?
A function becomes overridden if the derived class inherits it from the base class and determines it in itself. If the function exists in two classes (base and derived), then the call will execute the overridden function, and the function of the base class will be ignored.
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Recent Posts: TechnoBlogy