foo2.cpp:9: error: expected primary-expression before '(' token
这个文件中的错误是什么?我得到:
1 2 3 | foo2.cpp:9: error: expected primary-expression before '(' token foo2.cpp:9: error: expected primary-expression before 'int' foo2.cpp:9: error: expected ';' before '{' token |
1 2 3 4 5 6 7 8 9 10 11 | int main(void) { class X { int i; public: X(int ii = 0); }; X::X(int ii) { i = ii; } return 0; } |
首先,我可以问一下,为什么?
第二,不能在方法(包括
1 2 3 4 5 6 7 8 9 | int main() { class X { int i; public: X(int ii = 0){ i = ii; } }; return 0; } |
不能在C++中嵌套函数。要修改程序,您有两种选择。您可以将类定义移到
第一选择:
1 2 3 4 5 6 7 8 9 10 11 12 | class X { int i; public: X(int ii = 0); }; X::X(int ii) { i = ii; } int main(void) { return 0; } |
第二种选择:
1 2 3 4 5 6 7 8 9 10 | int main(void) { class X { int i; public: X(int ii = 0) { i = ii; } }; return 0; } |