yes shiva
 this is one of the way to call base class constructor, we usually use this
style when we pass some values to base class constructor,  otherwise  base
class constrictor are always  imlicitly.

On Tue, Aug 2, 2011 at 1:35 AM, siva viknesh <sivavikne...@gmail.com> wrote:

> 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.
>
>

-- 
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