dumbprog
dumbprog

Reputation: 43

How to init constructor parameters of a member in C++

I have the following code (header file):

class InnerClass
{
    InnerClass(int var);
}

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

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

Upvotes: 4

Views: 91

Answers (1)

songyuanyao
songyuanyao

Reputation: 172924

You could initialize the member variable BigClass::member by in-class brace-or-equal initializer (since c++11):

InnerClass member{5};

or member initializer list:

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

BTW: I suppose the constructor of InnerClass should be public.

Upvotes: 4

Related Questions