构造函数委托与默认参数

我想知道以下哪些类实现了首选方法:

class foo
{
public:
    foo(int a, int b, int c);
    foo(int a, int b) : foo(a, b, 0){};
    ~foo();
    //...
};

class bar
{
public:
    bar(int a, int b, int c = 0);
    ~bar();
    //...
};

从我的角度来看,它们基本上是相同的。我个人更喜欢底部的代码,因为(维护)的代码更少。但是我的偏爱是最佳实践吗?

评论