2013-09-26 5 views
0

я в настоящее время имеют следующие два классаКак использовать вперед декларацию в следующем сценарии

class TOrder 
{ 
public: 

private: 
    ....... 
}; 

Теперь мой другой класс:

#include "TOrder.h" 

namespace namespaceA 
{ 
    namespace namespaceB 
    { 
     class OrderDis 
     { 
     private: 
      TOrder* frmPointer; 
        ..... 
     }; 

    }  
} 

Вышеприведенные отлично работает проблема начинается, когда я используйте объект OrderDis в TOrder как таковой

#include <QMainWindow> 
#include "OrderDis" //Added - Creates Problem 
class TimedOrder 
{ 
public: 

    ....... 
}; 

Любое предложение о том, как я могу использовать форвардную декларацию для решения моей проблемы?

ответ

1

Вы можете направить OrderDispatcher в TimeOrder.h

namespaceA 
{ 
    namespaceB 
    { 
     class OrderDispatcher; 
    } 
} 

class TimedOrder 
{ 
//... 
}; 
+0

Спасибо, что сделал трюк. Отмечено как ответ после таймера – MistyD

+0

@MistyD рад, что это помогло! – billz

0

Как использовать только указатель на TimedOrder в OrderDispatcher классе, она может быть решена просто не включая TimedOrder.h в файле OrderDispatch.h. Вместо того, чтобы просто объявить в TimedOrder класс:

class TimedOrder; 

Нет необходимости слоняться с пространствами имен и таких тогда.

Примечание: вы не можете объявить его ни в одном из пространств имен, объявите его вместо этого, где теперь вы делаете свой #include.

0

Переднее декларация может быть представлена ​​в виде:

namespace A{ namespace B{ class OrderDispatcher; } } 
Смежные вопросы