[英]How to create an object of class defined inside namespace in c++
namespace t {
class A {};
}
如何創建A
類對象?
編輯:
namespace beta {
class TESSDLL_API TessBaseAPI
{
public:
TessBaseAPI();
virtual ~TessBaseAPI();
}
}
這是在beta
名稱空間內定義的類。 現在如何調用構造函數? 是
tess = new beta::TessBaseAPI();
正確?
像通常那樣。 唯一的區別是A
在名稱空間t
。 所以你可以 :
每次要使用A
時,請使用范圍解析運算符 :
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;
要么
namespace t
{
A a;
}
要么
t::A a;
在第一種情況下, a
位於命名空間t
(實際上其全名是::t::a
)。 在第二種情況下, a
是全局的。
(注意:你的class A{}
缺少;
之后}
)
namespace t
{
class A {} a;
A another_a;
}
現在使用t::a
或t::another_a
。
如果要制作另一個對象:
t::A another_a_out_of_namespace_scope;
在類的聲明后使用分號,並使用:
t::A my_object;
muntoo的答案允許您創建該類的單個實例,這也是正確的。
對於一個名為x
的對象;
t::A x;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.