Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

what is the order of initialization for data?

Answer Posted / sachin magdum

Kasi, I am not agreed with you, in your case sal will be initialized before ssn.

Debug this program and see,


class A
{
int i ;
public :
A (int _i)
{
i = _i;
}
};

class B
{
A a;
A b;
A c;

public :
B(int _a, int _b, int _c) : a(_a), c(_c), b(_b)
{}
};

int main(int argc, char* argv[])
{
B b(1,2,3);

return 0;
}

Here the initialization order is first 'a' then 'c' and then 'b' and not a, b, c.

However, if you have base class then the case is little different


class A
{
int i ;
public :
A (int _i)
{
i = _i;
}
};

class B : public A
{
A a;
A b;
A c;

public :
B(int _a, int _b, int _c, int _base) : a(_a), c(_c), b(_b), A(_base)
{}
};

int main(int argc, char* argv[])
{
B b(1,2,3,4);

return 0;
}

In this case first 'A' that is base class of B, then 'a' then 'c' then 'b' will be initialized.

If you have multiple base classes, then they will be initialized in the order of their declaration, and not in the order how they are initialized.

class A
{
int i ;
public :
A (int _i)
{
i = _i;
}
};

class C
{
int i ;
public :
C (int _i)
{
i = _i;
}
};


class B : public A, public C
{
A a;
A b;
A c;

public :
B(int _a, int _b, int _c, int _baseA, int _baseC) : a(_a), C (_baseC), c(_c), b(_b), A(_baseA)
{}
};

int main(int argc, char* argv[])
{
B b(1,2,3,4,5);

return 0;
}

In this case first 'A' then 'C' then 'a' then 'c' and then 'b' will be initialized.

Is This Answer Correct ?    3 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is fixed in c++?

1043


What is the header file for setw?

1138


What's c++ used for?

1119


What is a volatile variable in c++?

1477


What is polymorphism in c++? Explain with an example?

1047


What's the "software peter principleā€?

1153


When does a 'this' pointer get created?

1106


How does list r; differs from list r();?

1162


What are the benefits of operator overloading?

1220


What is problem with overriding functions?

1074


Ask to write virtual base class code?

2767


Can malloc be used in c++?

1087


Write bites in Turbo c++ Header ("Include") Files.

1272


How do c++ struct differs from the c++ class?

1205


What is the use of function pointer?

1033