Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what does default constructor do when it's empty?

I wonder if anyone could explain what the default ctor does after memory allocated, how it initializes the allocated memory?

like image 280
choppyyo Avatar asked Jul 21 '11 09:07

choppyyo


2 Answers

Default constructors invoke the default constructors of all non-static data members, except those of built-in types, which remain uninitialised.

[2003: 12.1/5]:

A default constructor for a class X is a constructor of class X that can be called without an argument. If there is no user-declared constructor for class X, a default constructor is implicitly declared.

[2003: 12.1/8]:

Default constructors are called implicitly to create class objects of static or automatic storage duration (3.7.1, 3.7.2) defined without an initializer (8.5).

like image 88
Lightness Races in Orbit Avatar answered Oct 30 '22 02:10

Lightness Races in Orbit


I don't know which languange you asked the question for, but I will try to answer anyway for C++ and Java

In C++, it :

  • leaves the built-in types (int, float, pointers, etc.) to an uninitialized value
  • calls the default constructor on class members

In Java, I think all class members are initialized to their default value (0 or NULL).

like image 34
Louen Avatar answered Oct 30 '22 02:10

Louen