此文件中的错误是什么? 我明白了:
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
int main(void)
{
class X {
int i;
public:
X(int ii = 0);
};
X::X(int ii) { i = ii; }
return 0;
}
答案 0 :(得分:7)
首先,请问,为什么?
其次,您无法在方法中提供实现(包括main
)。如果必须这样做,请保持实施内联:
int main()
{
class X {
int i;
public:
X(int ii = 0){ i = ii; }
};
return 0;
}
答案 1 :(得分:1)
您无法在C ++中嵌套函数。要修改您的程序,您有两种选择。您可以将类定义移到main
之外,也可以将方法定义放在类中:
第一种选择:
class X {
int i;
public:
X(int ii = 0);
};
X::X(int ii) { i = ii; }
int main(void)
{
return 0;
}
第二种选择:
int main(void)
{
class X {
int i;
public:
X(int ii = 0) { i = ii; }
};
return 0;
}