Kra
Kra

Reputation: 678

How initialize array of classes?

I have this class constructor:

Pairs (int Pos, char *Pre, char *Post, bool Attach = true);

How can I initialize array of Pairs classes? I tried:

Pairs Holder[3] =
{
    {Input.find("as"), "Pre", "Post"},
    {Input.find("as"), "Pre", "Post"},
    {Input.find("as"), "Pre", "Post"}
};

Apparently it's not working, I also tried to use () brackets instead of {} but compiler keeps moaning all the time. Sorry if it is lame question, I googled quite hard but wasn't able to find answer :/

Upvotes: 7

Views: 28247

Answers (2)

Christian Neverdal
Christian Neverdal

Reputation: 5375

Call the constructor:

Pairs Holder[3] =
{
    Pairs(Input.find("as"), "Pre", "Post"),
    Pairs(Input.find("as"), "Pre", "Post"),
    Pairs(Input.find("as"), "Pre", "Post")
};

This is similar to saying

Holder[0] = Pairs(Input.find("as"), "Pre", "Post");
Holder[1] = Pairs(Input.find("as"), "Pre", "Post");
Holder[2] = Pairs(Input.find("as"), "Pre", "Post");

A full-fledged class can be found here.

Upvotes: 6

anon
anon

Reputation:

Call the constructor explicitly:

Pairs Holder[3] =
{
    Pairs(Input.find("as"), "Pre", "Post"),
    Pairs(Input.find("as"), "Pre", "Post"),
    Pairs(Input.find("as"), "Pre", "Post")
};

Upvotes: 14

Related Questions