Всем привет
есть интерфейсный класс ITrack в нем определены несколько вспомогательных классов
например класс исключений Excpt в нем также есть указатель на класс реализацию
ITrackImpl *pImpl в этом классе реализации нужно также использовать типы
определенные в интерфейсном классе ITrack теперь например если мне надо бросить
исключение придется везде писать "ITrack::Excpt" ?
рисунок
track.h
class ITrack
{
struct Excpt{...};
class ITrackImpl *pImpl;
};
track.cpp
class ITrackImpl
{
void DoSmth()
{
// o_O
throw ITrack::Excpt();
}
};
некрасиво и громоздко каждый раз упоминать ITrack в качестве приставки
потому что кроме Excpt есть еще класс к которому тоже нужен доступ
если ли способ не писать одно и тоже ?