foo2.cpp:9:错误:在'('标记之前的预期的primary-expression

时间:2012-06-05 13:32:12

标签: c++

此文件中的错误是什么? 我明白了:

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;
}

2 个答案:

答案 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;
}