1

这个文件有什么错误?我得到:

foo2.cpp:9: 错误: '(' 标记之前的预期主表达式
foo2.cpp:9:错误:“int”之前的预期主表达式
foo2.cpp:9: 错误: 预期 ';' '{' 标记之前
int main(void)
{
  class X {
    int i;
  public:
    X(int ii = 0);
  };

  X::X(int ii) { i = ii; }
  return 0;
}
4

2 回答 2

7

首先,我可以问一下,为什么

其次,您不能在方法内提供实现(包括main)。如果必须这样做,请保持实现内联:

int main()
{
  class X {
    int i;
  public:
    X(int ii = 0){ i = ii; }
  };
  return 0;
}
于 2012-06-05T13:33:53.523 回答
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;
}
于 2012-06-05T13:46:05.680 回答