namespace t {
class A {};
}
如何创建类A
的对象?
编辑:
namespace beta {
class TESSDLL_API TessBaseAPI
{
public:
TessBaseAPI();
virtual ~TessBaseAPI();
}
}
这是beta
命名空间中定义的类。现在我如何调用构造函数?是
tess = new beta::TessBaseAPI();
正确?
答案 0 :(得分:4)
正如您通常所做的那样。唯一的区别是A
位于命名空间t
内。所以你可以:
每次要使用A
时都使用scope resolution operator:
t::A a;
使用using directive
using namespace t;
A a;
或者,正如Luc Danton指出的那样使用using declaration
using t::A;
A a;
编辑后:
假设您的班级声明以
中的;
结尾
namespace beta {
class TESSDLL_API TessBaseAPI
{
public:
TessBaseAPI();
virtual ~TessBaseAPI();
};
}
然后调用构造函数的正确方法是:
beta::TessBaseAPI * tess = beta::TessBaseAPI();
或
beta::TessBaseAPI tess;
答案 1 :(得分:3)
无论
namespace t
{
A a;
}
或
t::A a;
在第一种情况下,a
位于命名空间t
内(实际上它的全名是::t::a
)。
在第二种情况下,a
是全球性的。
(注意:class A{}
之后;
遗失了}
答案 2 :(得分:2)
namespace t
{
class A {} a;
A another_a;
}
现在使用t::a
或t::another_a
。
如果你想制作另一个对象:
t::A another_a_out_of_namespace_scope;
答案 3 :(得分:0)
在声明类之后使用分号,并使用:
t::A my_object;
muntoo的答案允许您创建该类的单个实例,并且也是正确的。
答案 4 :(得分:0)
对于名为x
;
t::A x;