Friend Function in C++

Image
Friend Function in C++ Welcome to C++ Programming. In this article, we will talk about friend Function and friend Class trying to understand what do they mean and why are they useful in C++ design process. These will be the module outline we will take examples of Matrix Vector Multiplication and Linked List, and finally will end with somenotes. As you know as usual the outline will be available on the left of your slide So, let us first introduce the basic notion of friend function. On the left you have the view of ordinary function. So the situation is like this, that I have a class myclass which as some private data, it has a constructor, and it has; I am sorry if just ignore this line. I have this function written outside of this class which is trying to do something with the class. What is it doing? It takes an object of the class by reference parameter call by reference, and then it tries to print the data element component of that objective. Now, what do we know, this is pr...

Virtual Destructors In C++

Virtual Destructors In C++

                            Base class destructor should always be virtual.The reason is if you want to delete the object of derived class it will not deleted.Lets take an example:

Forexample

        class A{
                    public: 
                    ~A(){
                            cout<<"Base Class"<<endl; 
                            }
                      };

        class B :public A{
                    public: 
                    ~B(){
                            cout<<"Derived Class"<<endl; 
                            }
                       };

        int main(){
                        A *ptr=new B;
                        delete ptr;
                        return 0;
                        }

Output
                    Base Class

                        From above the example you can see that the base class destructor is not virtual and derived class destructor is not called.
                                                So the solution for this is to put virtual before the base class destructor.Just add virtual keyword like that:

                    virtual ~A(){
                            cout<<"Base Class"<<endl; 
                            }
                      };

                                                   So the output now will be 

Derived Class          
Base Class

Comments

Popular posts from this blog

Friend Function in C++

Programming language in C++

How To Use Class and Object In C++