0

let's say i have 2 classes

class B
{
   B() { /* BLA BLA */ };
   B(int a) { /* BLA BLA */ };
   B(int a,int b) { /* BLA BLA */ };
}

class A {
public :
  A(B  par);
}

i was wondering how can i call A's constructor with par having a deafult argument, as each of B constructors. (of course i would like see 3 examples, i don't expect all of them to exist together)

thanks

2 Answers 2

7

You can do something like:

A(B par = B())
A(B par = B(1))
A(B par = B(1,2))

Full code as per comment:

class B
{
public:
   B() {  };
   B(int a) {};
   B(int a,int b) {};
};

class A {
public :
  A(B  par = B()/* or B(1) or B(1,2) */);

};
Sign up to request clarification or add additional context in comments.

6 Comments

curious about the reason for downvote..is something wrong in the answer?
Did you mean to create par as object of B and pass the same to A, then it did not work for me, though I am not the down voter.
no.. they are the definition of A's constructor with default values for parameter B, I thought OP wanted to know how to specify the default parameters for a user defined type containing parametrized constructors..
@Naveen thanks, you just can have one of those constructor right?
Yes..that is what OP also mentioned in the post
|
0
A(B());//create a B object and pass it to A
A(B(1));
A(B(1,2));

or define 3 different constructor for A(but that does not sound good to me).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.