Рассмотрим код:
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;
}
Однако никакого "хорошего тона" в попытках тотального перехода на предварительные объявления я не вижу.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Существует два противоположных мнения, относительно включения одних заголовков в другие
Занимаюсь реализацией алгоритма ГОСТ 28147-89Например, есть ключ 256 бит:
Есть такой код, описывающий вложенные списки:
Не могу разобраться почему не считает, вроде отладчиком прошелся посмотреть чему равен lidataset