Я не совсем уверен, что следую.В настоящее время, предоставляя аргумент x
и y
(и, следовательно, z
), оба конструктора будут доступны для вызова, что приведет к неоднозначности.
Я думаюто, что вы ищете:
class First
{
public:
First(int x);
First(int x, int y, int z = 0);
};
// invoked as First f(1);
First::First(int x) :
a(x), b(0), c(0)
{}
// invoked as First f(1, 2); or First f(1, 2, 3);
First::First(int x, int y, int z) :
a(x), b(y), c(z)
{}