构造函数作为默认参数

时间:2009-11-27 10:04:42

标签: c++ class

假设我有两个班级

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

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

我想知道我怎样才能将A的构造函数称为具有deafult参数的par,作为每个B构造函数。 (当然我想看到3个例子,我不希望所有这些例子一起存在)

感谢

2 个答案:

答案 0 :(得分:7)

您可以执行以下操作:

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

根据评论的完整代码:

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) */);

};

答案 1 :(得分:0)

A(B());//create a B object and pass it to A
A(B(1));
A(B(1,2));

或为A定义3个不同的构造函数(但这听起来对我不好)。