Constructors for arrays?

Started by
3 comments, last by Polymorphic OOP 18 years, 7 months ago
How are constructors for class type array elements called?
-----------------------------Language: C++API: Win32, DirectXCompiler: VC++ 2003
Advertisement
I'm not really sure what you mean (or in which language), but if you mean how the constructors are called in a statement like this(asumming C++):
T a[10];
Then T's constructor is called ten times.
struct foo{	foo( int x ) { y = x; }	int y;}; foo	z[2] =	{		foo(1),		foo(2)	}; 

John BoltonLocomotive Games (THQ)Current Project: Destroy All Humans (Wii). IN STORES NOW!
The default constructor will be used.

If there is no default constructor then you'll have to do something like

class MyClass
{
public:
MyClass(int value);
};

MyClass array[3] = {MyClass(4), MyClass(21), MyClass(7)};
In C++, they are called starting from the the element with all indices equal to 0, successively calling the constructors for all elements in row-major order. If an exception is thrown, any elements which were already constructed are then destructed in the reverse order.

This topic is closed to new replies.

Advertisement