2015-10-12 92 views
-5

在我开始之前,我知道我做了什么是'非法'的,但我需要知道我会如何正确编写它。命名空间中的调用函数

我有这样的代码:

namespace PrisonBreak 
{ 
    void Waterfall(int client) 
    { 
      int* origin = (int*) (0xF4499C + 0x3700 * client); 
      origin[0] = 0xC5DE0CA8; 
      origin[1] = 0x4432BAEF; 
      origin[2] = 0x44C0C828; 
    } 
} 

,我试图调用它在这样一个单独的头:

PrisonBreak::Waterfall(i); 

不幸的是我得到这个错误在编译时:

错误277:名称后跟“::”必须是类或名称空间名称

想知道,编写代码的第一部分的正确方法是什么,所以我可以像上面那样调用它,没有任何错误。

谢谢:)

+0

编译对我来说:http://coliru.stacked-crooked.com/a/a5d04cb045bff524 – vsoftco

+3

请发表[MCVE。 –

+0

尝试在函数内部传递参数 – vishal

回答

1

您需要通话你的函数是这样的:

PrisonBreak::Waterfall(5); 

你当然可以将任意数量,而不是5这里。

或者你可以把这个函数传递给另一个函数:

SomeFunc(PrisonBreak::Waterfall); 
+0

我的不好,我没有写得正确。我试图称之为PrisonBreak :: Waterfall(i);它仍然不起作用:P – alboyiscool

+0

@alboyiscool,它不工作如何?还是一样的方式?你是否正确地包含所有标题? – ForceBru

+0

是的,我已经将所有的头文件包含在主cpp文件中,所以这里肯定没有问题。当我编译它抱怨说,该函数必须是一个类或名称空间名称,那么如何工作? – alboyiscool

1

您的问题这里是你调用你的函数是错误的。

这工作得很好:

#include <iostream> 

namespace PrisonBreak 
{ 
     void waterfall(int a) 
     { 
       std::cout << a << std::endl; 
     } 
} 

int main() 
{ 
     PrisonBreak::waterfall(5); 
     return 0; 
} 
相关问题