如何在 C++ 中创建命名空间内定义的类的对象

Ank*_*ava 1 c++

namespace t {\n    class A {};\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何创建类的对象A

\n\n

编辑 :

\n\n
namespace beta {\n  class TESSDLL_API TessBaseAPI \n  { \n     public: \n           TessBaseAPI(); \n           virtual ~TessBaseAPI(); \n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是在 \xc2\xa0 命名空间内定义的类beta。现在我如何调用构造函数?是

\n\n
tess = new beta::TessBaseAPI(); \n
Run Code Online (Sandbox Code Playgroud)\n\n

正确的?

\n

Dra*_*kar 5

正如您通常所做的那样。唯一的区别是A在命名空间内部t。所以你可以 :

每次要使用时都使用范围解析运算符A

t::A a;
Run Code Online (Sandbox Code Playgroud)

使用using directive

using namespace t; 
A a;
Run Code Online (Sandbox Code Playgroud)

或者,正如 Luc Danton 指出的那样,使用using declaration

using t::A;
A a;
Run Code Online (Sandbox Code Playgroud)

根据您的编辑:

假设您的类声明以 a 结尾,;如下所示

namespace beta {
  class TESSDLL_API TessBaseAPI 
  { 
     public: 
           TessBaseAPI(); 
           virtual ~TessBaseAPI(); 
  };
}
Run Code Online (Sandbox Code Playgroud)

那么调用构造函数的正确方法是:

beta::TessBaseAPI * tess = beta::TessBaseAPI();
Run Code Online (Sandbox Code Playgroud)

或者

beta::TessBaseAPI tess;
Run Code Online (Sandbox Code Playgroud)