2017-04-20 11 views
0

沒有構件我有這樣的代碼:C++在Xcode - 在命名空間

#ifndef LUA_CALLBACKS_H 
#define LUA_CALLBACKS_H 

extern "C" 
{ 
#include "./lua_lib/lua.h" 
#include "./lua_lib/lualib.h" 
#include "./lua_lib/lauxlib.h" 
} 


#include "./LuaWrapper.h" 

static int X(lua_State *L) 
{ 
    LuaCpp::LuaWrapper::GetInstance(); 

    return 1; 
} 

#endif 

在 「LuaWrapper.h」 我有:

#ifndef LUA_WRAPPER_H 
#define LUA_WRAPPER_H 

namespace LuaCpp 
{ 
    class LuaWrapper 
    { 
    public: 
     static LuaWrapper * GetInstance() { return nullptr; } 
    } 
} 

#endif 

我已正確附帶LuaWrapper文件。不過,我有在XCode中此錯誤(LLVM 8.1)

  • 命名空間中的任何成員的名字 「LuaWrapper」 LuaCpp

相同的代碼編譯正確在Visual Studio 2015年注:上面的代碼是「虛擬」,它不會做任何事情。但它不編譯。

回答

0

Defining a class within a namespace

這是一個有用的舊職位,說:你可以聲明一個類是一個命名空間的成員,但你必須定義命名空間塊之外的類。

ଘ(7 *'ᵕ')7 *'嘗試定義命名空間LuaWrapper之外LuaWrapper的方法的GetInstance()?

namespace LuaCpp { class LuaWrapper; } 

    class LuaCpp::LuaWrapper { 
    public: 
     static LuaWrapper * GetInstance() { return nullptr; } 
    } 
+0

無影響..同樣的錯誤 –