以下程式,哪一行是錯的呢?

 1class Foo {
2public:
3 Foo();
4 Foo(int i) {}
5 Foo(const char * name) {};
6};
7
8Foo::Foo() {}
9
10int main() {
11 Foo foo;
12}

答案第5行是錯的!!

第3行

Foo()

為Foo()的定義,還需要Foo::Foo()去實做。


第4行

Foo(int i) {}

已經有body了,只是沒有程式而已,但語法正確。


第5行

Foo(const char * name) {};

若依照C++的語法,錯在最後加上了;,但我測了Visual C++ 8.0,gcc 3.4.2, BCB 6.0都可以過,不知是不是大家積非成是,compiler也妥協了?