(原創) 一個寫constructor常犯的錯 (C/C++)

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

 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也妥協了?

posted on 2007-03-21 07:27  真 OO无双  阅读(592)  评论(1编辑  收藏  举报

导航