【问题标题】:Function definition not allowed here? [duplicate]这里不允许定义函数? [复制]
【发布时间】:2014-11-17 15:53:46
【问题描述】:

我是 C++ 的新手。 我正在编写这个函数,但不知何故它给了我这个错误

Error: a function-definition is not allowed here before '{' token

我的代码是

int main() {
    //number is given num
    // power is raise to power
    int raiseTo(int number, int power)
    {
        for (int i=0;i<=power;i++)
        {       
            number=number*number;
        }
        return number;
    }
}

请告诉我我做错了什么。谢谢。

【问题讨论】:

  • 完成基本教程。这是错误的。
  • 顺便说一句,你没有执行power
  • 好的,我明白了.. 谢谢。

标签: c++


【解决方案1】:

两大问题:

  1. 不应在函数内部实现函数
  2. 您没有正确执行幂算法

试试这个代码:

int raiseTo(int number,int power)
{
    int result = 1;
    for (int i=0; i<power; i++)
    {
        result = result*number;
    }
    return result;
}

int main()
{
    int x = 2;
    int y = 3;
    int z = raiseTo(x,y);
    printf("%d^%d = %d\n",x,y,z);
    return 0;
}

【讨论】:

    【解决方案2】:

    C++ 标准说:

    § 8.4.1/2 [..] 函数只能在命名空间或 类范围。

    所以你的所作所为根本不被允许。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      相关资源
      最近更新 更多