Untitled

 avatar
unknown
plain_text
5 months ago
1.3 kB
3
Indexable
**Virtual Keyword:**
In C++, the `virtual` keyword is used to declare a function that can be overridden by a derived class. A virtual function is a member function of a class that can be redefined by a derived class.

**Virtual Constructor:**
There is no such thing as a virtual constructor in C++. Constructors are special member functions that are used to initialize objects when they are created, and they cannot be declared as virtual.

**Virtual Destructor:**
A virtual destructor is a destructor that is declared as virtual in a base class. This allows the correct destructor to be called when an object of a derived class is deleted through a pointer to the base class.

Example:
```c
class Base {
public:
    virtual ~Base() {} // virtual destructor
};

class Derived : public Base {
public:
    ~Derived() {} // destructor
};

int main() {
    Base* p = new Derived();
    delete p; // calls Derived's destructor and then Base's destructor
    return 0;
}
```
In this example, if the `Base` class did not have a virtual destructor, the `Derived` class's destructor would not be called when `p` is deleted, leading to undefined behavior. By declaring the `Base` class's destructor as virtual, we ensure that the correct destructor is called for the `Derived` class.
Editor is loading...
Leave a Comment