Ошибка присвоения левостороннему операнду

Почему пишет ошибку присвоения левостороннему операнду?

snake.h

#pragma once
#include "segment.h"
#include "fruit.h"
#include <vector>
#include <iostream>


using namespace std;

enum Direction {
    D_LEFT, D_RIGHT, D_UP, D_DOWN
};

class Snake
{
private:
    Direction currentDirection();
    bool isUpdated;
    int score;
public:
    vector<Segment*> blocks;
    Snake(float startX, float startZ, int blockCount);
    ~Snake();
    void draw();
    void move(Direction direction);
}

snake.cpp

#include "snake.h"
#include "segment.h"
#include "fruit.h"
#include <glut.h>
#include <iostream>
#include <chrono>
#include <thread>

using namespace std;

enum Direction {
    D_LEFT, D_RIGHT, D_UP, D_DOWN
};

Snake::Snake(float startX, float startZ, int blockCount) {
    for (float i = 0; i < blockCount; i++) {
        Segment* temp = new Segment(startX + i, 0, startZ);
        if (i == 0)
            temp->setColor(1, 1, 0); //snake head is set to green color
        blocks.push_back(temp);
    }
    isUpdated = false;
    currentDirection = D_LEFT;
    score = 0;
}

В строке где currentDirection = D_LEFT. В чем ошибка? Почему если поместить все в один файл то ошибка пропадает?


Ответы (1 шт):

Автор решения: Harry
Direction currentDirection();

Это - объявление функции. Вот и получается, что вы присваиваете значение типа Direction функции... Может, вы хотели объявить

Direction currentDirection;

?

→ Ссылка