how it ll simply call the  base class constructor ???

As far as i know .....

if we give like.....

class abc
{
  abc(int i){.........}
}
class def : public abc
{

   def(int i,int j):abc(i)

{........}

// by using like this only u can call base class
//constructor  no ???  ..correct me if i m wrong


}

On Aug 1, 11:04 pm, coder dumca <coder.du...@gmail.com> wrote:
> base class constructor are called before derived class construtors.
>
> Base* pBase = new Derived();          statement creates a derived class
> object hence calls derived class condstructor, which calls base call
> constructor. base class constructor calls fun()  which prints  " Base
> Function".
>
> pls correct me  if i m wrong
> On Mon, Aug 1, 2011 at 9:37 AM, sivaviknesh s <sivavikne...@gmail.com>wrote:
>
>
>
>
>
>
>
>
>
> >  #include<iostream>
> > #include<stdio.h>
>
> > using namespace std;
>
> > class Base
> > {
> > public:
> >   Base()
> >   {
> >     fun(); //note: fun() is virtual
> >   }
> >   virtual void fun()
> >   {
> >     cout<<"\nBase Function";
> >   }
> > };
>
> > class Derived: public Base
> > {
> > public:
> >   Derived(){}
> >   virtual void fun()
> >   {
> >     cout<<"\nDerived Function";
> >   }
> > };
>
> > int main()
> > {
> >   Base* pBase = new Derived();
> >   delete pBase;
>
> >   getchar();
> >   return 0;
> > }
>
> > Output:
> > *Base Function*
>
> > See following excerpt from C++ 
> > standard<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf>for
> >  explanation.
>
> > *When a virtual function is called directly or indirectly from a
> > constructor (including from the mem-initializer for a data member) or from a
> > destructor, and the object to which the call applies is the object under
> > construction or destruction, the function called is the one defined in the
> > constructor or destructor’s own class or in one of its bases, but not a
> > function overriding it in a class derived from the constructor or
> > destructor’s class, or overriding it in one of the other base classes of the
> > most derived object.*
>
> > Because of this difference in behavior, it is recommended that object’s
> > virtual function is not invoked while it is being constructed or destroyed.
> > See this
> > <https://www.securecoding.cert.org/confluence/display/cplusplus/OOP30-...>for
> > more details.
> > ..............CAN ANYONE GIVE A SIMPLE EXPLANANTION?? given explanation is
> > quite confusing....
>
> > --
> > Regards,
> > $iva
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Algorithm Geeks" group.
> > To post to this group, send email to algogeeks@googlegroups.com.
> > To unsubscribe from this group, send email to
> > algogeeks+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/algogeeks?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to