error in c++ main file int expression

188 views Asked by At

I am making a new program in c++ i get the current error

expected primary-expression before ‘int’

about this line

p1::pascals_triangle(int depth);

My code is:

this is my 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.      

this is main

    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);
2

There are 2 answers

3
0xC0000022L On BEST ANSWER

p1 needs to be an existing namespace or class name.

If that does not solve the problem you will have to give some surrounding code to make sense of your question ;)

Good luck.

2
Dan On

Unless you're declaring a method, you probably don't need the keyword "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;
}

If I were to write instead:

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

I'd get:

In function ‘int main()’:
error: expected primary-expression before ‘int’