c++ 构造函数

1. The construction model in C++ is quite strict (mostly due to the fact
that C++ has "value-based" UDTs rather than just pointers, as in
Java). Basically, by the time you enter the body of your constructor,
all of your base classes and all of your member variables will already
have been constructed. So there is no way to invoke another
constructor from the body of your constructor, because that would
involve double construction of all your variables.

2.  It is the other way round: Whenever you create an object, a
constructor is called.Therefore the call of the constructor is a side effect of createing
an object, not the other way round.

3.  a tricky error:
     struct A{
         A(int a){};
         A(){};
     }
   
     A a(1);// ok, call int constructor;
    A b();   // error, it's a function declaration....

   General rule: If it looks like a function declaration, it probably is.

你可能感兴趣的:(c++ 构造函数)