Следующий класс присутствует:объект вставки в комплект не удается
class Actor {
public:
float xpos{0};
float ypos{0};
Actor(float x, float y);
~Actor();
};
В статической функции класса управления, я хочу создать такой актер и вставить его в комплекте:
class ActorManager {
private:
ActorManager();
static std::set<Actor> actors;
public:
static void addActor(float x, float y);
}
Определение:
std::set<Actor> ActorManager::actors = std::set<Actor>();
void ActorManager::addActor(float x, float y) {
Actor actor(x, y);
actors.insert(actor); // <--
}
с отмеченной линии настоящего, actors.insert
, компиляция завершится неудачно. Ошибка:
/usr/lib/c++/v1/__functional_base:56:21: Invalid operands to binary expression ('const Actor' and 'const Actor')
Что мне здесь не хватает?
Вы не пропуская ничего. У вас есть посторонний '()' в конце 'actions = std :: Set()'. –
kfsone
Кажется, что требуется инициализировать статический член, я получаю сообщение об ошибке, если я использую '{}' вместо этого или оставляю их. – Appleshell