What is C++ programming language? C++ is a high-level programming language that extends the C programming language with additional features, including object-oriented programming (OOP) capabilities.
What is the difference between C and C++? C++ extends C with features like classes, objects, inheritance, and polymorphism, making it an object-oriented programming language. C++ also supports exception handling and namespaces, which are not available in C.
What is object-oriented programming (OOP)? OOP is a programming paradigm that organizes data and behavior into objects, allowing for modular and reusable code. It emphasizes concepts like encapsulation, inheritance, and polymorphism.
What are the four pillars of OOP? The four pillars of OOP are encapsulation, inheritance, polymorphism, and abstraction.
What is encapsulation in C++? Encapsulation is the process of bundling data and methods into a single unit called a class. It provides data hiding and allows access to data through controlled interfaces.
What is a class in C++? A class is a user-defined data type that serves as a blueprint for creating objects. It encapsulates data and methods that operate on that data.
What is an object in C++? An object is an instance of a class. It represents a specific entity with its own state and behavior.
What is inheritance in C++? Inheritance is a mechanism that allows a class to inherit properties and behaviors from another class. It promotes code reuse and supports the concept of hierarchical relationships between classes.
What is polymorphism in C++? Polymorphism allows objects of different classes to be treated as objects of a common base class. It enables different objects to respond differently to the same function call.
What is the difference between compile-time polymorphism and runtime polymorphism? Compile-time polymorphism, also known as static polymorphism, is achieved through function overloading and template specialization. Runtime polymorphism, also known as dynamic polymorphism, is achieved through function overriding and virtual functions.
What are virtual functions in C++? Virtual functions are functions declared in a base class and overridden in derived classes. They allow late binding, enabling the correct function to be called at runtime based on the object’s actual type.
What is an abstract class in C++? An abstract class is a class that cannot be instantiated and serves as a base for derived classes. It may contain pure virtual functions, making it an interface.
What is a pure virtual function? A pure virtual function is a virtual function that is declared in a base class but has no implementation. It must be overridden in derived classes.
What is a constructor in C++? A constructor is a special member function that is called automatically when an object is created. It initializes the object’s state.
What is a destructor in C++? A destructor is a special member function that is called automatically when an object is destroyed. It cleans up resources and performs necessary cleanup operations.
What is function overloading in C++? Function overloading allows multiple functions with the same name but different parameter lists to coexist in a class. The appropriate function is selected based on the arguments used during the function call.
What is operator overloading in C++? Operator overloading allows operators to be redefined for user-defined types. It enables custom-defined behavior for operators when applied to objects of a class.
What is the ‘this’ pointer in C++? The ‘this’ pointer is a special pointer available in member functions of a class. It points to the object on which the member function is being called, allowing access to its member variables and methods.
What is a friend function in C++? A friend function is a function that is not a member of a class but has access to its private and protected members. It is declared inside the class with the ‘friend’ keyword.
What is a template in C++? A template is a mechanism that allows generic programming in C++. It allows writing functions and classes that can operate on different data types without code duplication.
What is function template specialization? Function template specialization allows providing a specialized implementation for a specific data type within a template. It overrides the generic template implementation for that specific type.
What is the difference between shallow copy and deep copy? A shallow copy copies the values of the member variables, including pointers, resulting in multiple objects pointing to the same memory locations. A deep copy creates a new object with its own copies of the member variables, including dynamically allocated memory.
What is a const member function? A const member function is a member function that does not modify the object’s state. It is declared with the ‘const’ keyword at the end of the function declaration.
What are const objects in C++? Const objects are objects whose state cannot be modified after creation. They are declared using the ‘const’ keyword.
What is the difference between const reference and const pointer? A const reference must be initialized with a valid object and cannot be reassigned to refer to a different object. A const pointer can be assigned to different objects but cannot modify the object it points to.
What is dynamic memory allocation in C++? Dynamic memory allocation allows allocating memory at runtime using operators ‘new’ and ‘delete’. It enables creating objects and data structures dynamically.
What is a smart pointer in C++? A smart pointer is a wrapper class that manages dynamically allocated memory. It automatically releases the memory when it is no longer referenced, preventing memory leaks.
What is the difference between unique_ptr and shared_ptr? unique_ptr is a smart pointer that owns and manages a dynamically allocated object. It ensures exclusive ownership and cannot be copied. shared_ptr allows multiple pointers to refer to the same object and maintains a reference count to track object lifetime.
What is the ‘const’ keyword used for in function declarations? The ‘const’ keyword in function declarations indicates that the function does not modify the object’s state on which it is called. It is used for member functions that do not modify the object.
What is the ‘mutable’ keyword in C++? The ‘mutable’ keyword allows modifying a member variable of a class inside a const member function. It exempts the variable from the constness of the function.
What is the difference between ‘new’ and ‘malloc’ in C++? ‘new’ is an operator in C++ that dynamically allocates memory for an object and calls the object’s constructor. ‘malloc’ is a function in C that dynamically allocates memory but does not call the object’s constructor.
What is a namespace in C++? A namespace is a declarative region that provides a scope for the identifiers it contains. It prevents naming conflicts and organizes code into logical groups.
What is the ‘std’ namespace in C++? The ‘std’ namespace is the standard namespace in C++ that contains the standard library classes, functions, and objects.
What is a constructor initializer list? A constructor initializer list allows initializing member variables of a class in the constructor’s initialization section. It provides an efficient way to initialize member variables directly.
What is the difference between stack and heap memory allocation? Stack memory allocation is managed by the compiler and automatically allocates and deallocates memory for local variables. Heap memory allocation is controlled manually using ‘new’ and ‘delete’ operators and allows dynamic allocation of memory.
What is the ‘inline’ keyword in C++? The ‘inline’ keyword suggests the compiler to replace function calls with the actual function code. It is used for small functions to improve performance.
What is the difference between a reference and a pointer? A reference is an alias for an object and must be initialized at declaration. It cannot be reassigned to refer to a different object. A pointer is a variable that holds the memory address of an object and can be reassigned to point to different objects.
What are function pointers in C++? Function pointers store the memory addresses of functions. They allow dynamic invocation of functions and are used in callback mechanisms and function dispatching.
What is a virtual destructor? A virtual destructor is a destructor declared in a base class as virtual. It ensures that the destructor of the most derived class is called when deleting an object through a base class pointer.
What is the difference between an interface and an abstract class? An interface in C++ is a class with pure virtual functions, making it an interface with no implementation. An abstract class can have both regular and pure virtual functions and can provide some default implementation.
What is the ‘delete’ operator used for in C++? The ‘delete’ operator is used to deallocate memory allocated with the ‘new’ operator. It releases the dynamically allocated memory and calls the object’s destructor.
What is the difference between a shallow copy and a deep copy in C++? A shallow copy copies the memory addresses of the member variables, resulting in multiple objects pointing to the same memory locations. A deep copy creates a new object and copies the values of the member variables, including dynamically allocated memory.
What is a constructor chaining in C++? Constructor chaining refers to calling one constructor from another constructor of the same class. It allows code reuse and helps initialize objects with different constructor arguments.
What is the ‘typeid’ operator in C++? The ‘typeid’ operator returns information about the dynamic type of an object at runtime. It is often used in conjunction with polymorphism to perform type checking.
What is multiple inheritance in C++? Multiple inheritance allows a class to inherit from multiple base classes. It enables a derived class to inherit characteristics and behaviors from multiple parent classes.
What is a virtual base class in C++? A virtual base class is a base class that is declared as virtual in a derived class. It ensures that only one instance of the base class exists in the inheritance hierarchy, avoiding ambiguity in multiple inheritance scenarios.
What are pure virtual functions and abstract classes in C++? A pure virtual function is a virtual function declared in a base class but does not have any implementation. An abstract class is a class that contains at least one pure virtual function, making it an interface.
What is the difference between an interface and a class in C++? A class in C++ can have both member variables and member functions, providing implementation details. An interface is a class with pure virtual functions, defining only the interface without any implementation.
What is the ‘using’ keyword in C++? The ‘using’ keyword is used for two purposes in C++. Firstly, it can be used to create an alias for a data type or a namespace. Secondly, it can be used to bring a specific member of a base class into the derived class scope.
What is the ‘explicit’ keyword in C++? The ‘explicit’ keyword is used to specify that a constructor or conversion function should only be called explicitly and not implicitly. It prevents implicit type conversions.