-5

我正在用 C++ 制作一个新程序,我得到了当前的错误

'int'之前的预期主表达式</p>

关于这条线

p1::pascals_triangle(int depth);

我的代码是:

这是我的functions.cpp

using namespace std;

/**                                                                             
 * Note the namespace qualifier used here - I did not bring 'p1' in             
 * scope, therefore we need the "p1::" to preceed the function definitions.     
 */
void p1::pascals_triangle(int depth) {
  // Implement problem 1 in here.      

这是主要的

    using namespace std;

int main(int argc, char *argv[]) {

  // Need to implement argument processing here                                                                        
  // If you want to set a function pointer, you just take the                                                          
  // address of the function ('&' means 'take address of'):                                                            

  double (*pf)(double k); // declares the function pointer                                                             
  pf = &p1::test_function;//test_function; // sets the value of 'pf' to the address of      the 'p1::test_function' functio\
   n.                                                                                                                     

  p1::pascals_triangle(int depth);
4

2 回答 2

1

除非您声明一个方法,否则您可能不需要关键字“int”。

#include <iostream>


namespace foo {
    void pascals_triangle(int depth) {
        std::cout << depth << std::endl;
    }

    int another_method(int y);
}

using namespace std;

int
foo::another_method(int y) {
    cout << "called another_method with " << y << endl;
    return 8;
}

int main(void) {
    int x = 5;
    foo::pascals_triangle(x);
    foo::another_method(x + 1);
    return 0;
}

如果我改为写:

int main(void) {
    int x = 5;
    foo::pascals_triangle(int x);
    foo::another_method(x + 1);
    return 0;
}

我会得到:

In function ‘int main()’:
error: expected primary-expression before ‘int’
于 2011-03-03T02:10:08.163 回答
0

p1需要是现有namespace名称或类名称。

如果这不能解决问题,您将不得不提供一些周围的代码来理解您的问题;)

祝你好运。

于 2011-03-03T02:07:24.650 回答