[英]C++: typedefing and nested class issue
我有:
class ThreadPool
{
public:
....
private:
struct TP_Thread: public Thread_t
{
....
};
std::vector<std::tr1::shared_ptr<TP_Thread> > m_threads;
.....
};
我想做這樣的事情:
typedef std::tr1::shared_ptr<TP_Thread> shpThread;
縮短類定義中的寫作。 問題是我要么得到指向不完整類型的指針(因為類之前的前向聲明和公共部分的 typedef )或試圖訪問 ThreadPool 的私有成員(在這種情況下我試圖在類之外 typedef 它)。 我如何 typedef 以便我可以在實現過程中自由使用它?
為什么不在類的公共部分包含您的 typedef:
class ThreadPool
{
public:
....
private:
struct TP_Thread: public Thread_t
{
....
};
public:
typedef std::tr1::shared_ptr<TP_Thread> Shp;
...
然后在您的代碼中使用ThreadPool::Shp
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.