Here is what my code looks like which is very simple:
#include <stdio.h>
class Test
{
public:
   Test()
   {
      printf ("contructor !\n");
   }
   ~Test()
   {
      printf ("destructor !\n");
   }
   Test(const Test& test)
   {
      printf ("copy contructor !\n");
   }
};
int main()
{
    Test xyz(xyz);
    return 0;
}
Then I type g++ a.cpp; ./a.out
It output: copy contructor ! destructor !
but no contructor output !
I`m confused, is it a bug of compiler ?
 
    