How to initialize element constructor parameters in C ++

I have the following code (header file):

class InnerClass
{
    InnerClass(int var);
}

class BigClass
{
    BigClass();
    InnerClass member(5);
}

How can I initialize a member parameter in BigClass to 5 (the code above generates an error, as you probably guessed)? If I put the InnerClass (5) member string in the code file (not the header), then no problem.

+4
source share
1 answer

You can initialize a member variable BigClass::memberusing the initializer as a bracket or in a class (starting with C ++ 11):

InnerClass member{5};

or list of participants initiators :

class BigClass
{
    InnerClass member;
public:
    BigClass() : member(5) {}
    // or... BigClass(int var) : member(var) {}
}

BTW: I believe the constructor InnerClassshould be publicly available.

+4

All Articles