@Elnurhan

Как использовать forward declaration?

Всем привет! Недавно узнал о forward declaration и появился вопрос: у меня есть файл Log.h, со следующим "скелетом":

Log.h
class LogCollapserMaker
{
public:
	class LogCollapser
	{
	public:
		LogCollapser(uint32_t estimateCount);
		bool estimated();

	private:
		boost::recursive_mutex			m_collapserMutex;
		const uint32_t					m_estimateCount;
		uint32_t						m_count;
	};

public:
	typedef boost::shared_ptr<LogCollapser> LogCollapserSP;

	LogCollapserSP logCollapser(const std::string& key, uint32_t estimateCount);

private:
	boost::recursive_mutex					m_mutex;
	std::map<std::string, LogCollapserSP>	        m_logCollapserMap;
};


В файле Log.cpp находится вся реализация.
Как я могу использовать forward declaration с такой структурой?
  • Вопрос задан
  • 490 просмотров
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
ВНИМАНИЕ! Это плохой пример, не надо так делать!

//fwd
class LogCollapserMaker;

LogCollapserMaker * GetLog(); // в срр реализация функции
// fwd только для того, чтобы объявить эту функцию до объявления класса


class LogCollapserMaker
{
public:
  class LogCollapser
...
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы