Рассмотрим код:
MyClass.hpp:
class Texture;
class MyClass
{
public:
void setTexture(Texture *_texture);
private:
Texture *texture;
};
MyClass.cpp:
#include <SFML/Graphic.hpp>
#include "MyClass.hpp"
using namespace sf;
void MyClass::setTexture(Texture *_texture)
{
texture = _texture;
}
Следуя хорошему тону, я стараюсь заменять включение одних заголовочных файлов в другие на предварительное объявление, если это, конечно, возможно.
Так как в заголовочном файле я делаю предварительное объявление class Texture, то компилятор сообщает о том, что в MyClass.cpp идентификатор Texture является неоднозначным.
При этом, компилятор запрещает предварительное объявление вида class sf::Texture.
Я не совсем понимаю, как правильно сделать предварительное объявление типа, который находится в каком-либо пространстве имен...
Предварительное объявление
namespace sf
{
class Texture;
}
Однако никакого "хорошего тона" в попытках тотального перехода на предварительные объявления я не вижу.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости