class Foo {
public:
Foo() { Foo(1)}
Foo(int x, int y = 0):i(x) {}
private:
int i;
}
Can anybody give me some reasonas about can I do this? If not why?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Because the language specification doesn’t allow it. Just the way the language is. Very annoying if you’re used to Java or other languages that allow it. However, you get used to it after a while. All languages have their quirks, this is just one of C++’s. I’m sure the writers of the specs have their reasons.
Best way around this I’ve found is to make a common initialization function and have both constructors call that.
Something like this: