Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 28
1

Ошибка C2061 ( в классах)

25.12.2013, 18:32. Показов 1092. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, исправить ошибку:
в .cpp файле подключен Desk.h , но функция не хочет принимать переменную типа Desk (в Entity.h )
(ошибка C2061: синтаксическая ошибка: идентификатор Desk)
//.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include "Desk.h"
#include "Entity.h"
 
int EntityX,EntityY,eType;
void Entity::Go(Desk *DeskPoint, int x, int y){
        DeskPoint->desk[EntityX][EntityY]=-1;// стираем
        DeskPoint->desk[x][y]=eType; //записываем
        EntityX=x; EntityY=y; //присваиваем новые координаты
    }
//.h

C++
1
2
3
4
5
6
7
8
class Entity
{
public:
    int EntityX,EntityY,eType;
    void Go(Desk *DeskPoint,int x,int y);  
private:
    void attack();
};
Как можно это исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2013, 18:32
Ответы с готовыми решениями:

Выскакивает ошибка C2061
Вылетает ошибка C2061 синтаксическая ошибка: идентификатор...

error C2061: синтаксическая ошибка: идентификатор
Вот такая ошибка: error C2061: синтаксическая ошибка: идентификатор using namespace std;...

C2061 ошибка, не могу понять что не так
Заголовочный файл: Forces.h #ifndef _FORCES_ #define _FORCES_ #include "ParticleSystem.h" ...

Вылетает ошибка error C2061: синтаксическая ошибка: идентификатор "_TCHAR"
Программа по обходу в глубину графа. вылетает error C2061: синтаксическая ошибка: идентификатор...

8
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
25.12.2013, 18:42 2
В Entity.h добавить
C++
1
#include "Desk.h"
0
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 28
25.12.2013, 19:02  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
В Entity.h добавить
C++
1
#include "Desk.h"
Это не помогло
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
25.12.2013, 19:12 4
Тогда выкладывайте код Desk.h
0
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 28
25.12.2013, 19:18  [ТС] 5
Цитата Сообщение от zss Посмотреть сообщение
Тогда выкладывайте код Desk.h
Хорошо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Desk
{
public:
    Desk(int x, int y); 
    char *intro;
    int itemCounter,Bag[5],desk[10][20];
    void printDesk();
    void printmenu();
    void setTrap(int x, int y, char Trap[5]);
private:
    int X,Y,doorFree,doorClosed,Hor,Ver,UL,UR,DR,DL;
    void makeBrackets(); //создание границ
    int printBag(int lineNumber);
};
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
25.12.2013, 21:07 6
Не могу представить, чтобы это не компилировалось.
Вот такой код у меня компилируется без проблем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Desk
{
public:
    Desk(int x, int y); 
    char *intro;
    int itemCounter,Bag[5],desk[10][20];
    void printDesk();
    void printmenu();
    void setTrap(int x, int y, char Trap[5]);
private:
    int X,Y,doorFree,doorClosed,Hor,Ver,UL,UR,DR,DL;
    void makeBrackets(); //создание границ
    int printBag(int lineNumber);
};
class Entity
{
public:
    int EntityX,EntityY,eType;
    void Go(Desk *DeskPoint,int x,int y);  
private:
    void attack();
};
int EntityX,EntityY,eType;
void Entity::Go(Desk *DeskPoint, int x, int y){
        DeskPoint->desk[EntityX][EntityY]=-1;// стираем
        DeskPoint->desk[x][y]=eType; //записываем
        EntityX=x; EntityY=y; //присваиваем новые координаты
    }
0
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 28
25.12.2013, 21:17  [ТС] 7
zss,
просто дело в том, что мне нужно именно убрать классы в отдельные файлы (.cpp)
когда всё в одном cpp у меня тоже работает.
может, тут как-то по-другому надо сделать, чтобы класс entity мог работать с переменной типа Desk (или её указателем)?
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
25.12.2013, 21:21 8
С отдельными Entity.h и Desk.h тоже компилируется.
C++
1
2
3
4
5
6
7
8
class Entity
{
public:
    int EntityX,EntityY,eType;
    void Go(Desk *DeskPoint,int x,int y);  
private:
    void attack();
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Desk
{
public:
    Desk(int x, int y); 
    char *intro;
    int itemCounter,Bag[5],desk[10][20];
    void printDesk();
    void printmenu();
    void setTrap(int x, int y, char Trap[5]);
private:
    int X,Y,doorFree,doorClosed,Hor,Ver,UL,UR,DR,DL;
    void makeBrackets(); //создание границ
    int printBag(int lineNumber);
};
C++
1
2
3
4
5
6
7
8
#include "Desk.h"
#include "Entity.h"
int EntityX,EntityY,eType;
void Entity::Go(Desk *DeskPoint, int x, int y){
        DeskPoint->desk[EntityX][EntityY]=-1;// стираем
        DeskPoint->desk[x][y]=eType; //записываем
        EntityX=x; EntityY=y; //присваиваем новые координаты
    }
Все ОК.
0
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 28
25.12.2013, 21:29  [ТС] 9
Цитата Сообщение от zss Посмотреть сообщение
С отдельными Entity.h и Desk.h тоже компилируется.
C++
1
2
3
4
5
6
7
8
class Entity
{
public:
    int EntityX,EntityY,eType;
    void Go(Desk *DeskPoint,int x,int y);  
private:
    void attack();
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Desk
{
public:
    Desk(int x, int y); 
    char *intro;
    int itemCounter,Bag[5],desk[10][20];
    void printDesk();
    void printmenu();
    void setTrap(int x, int y, char Trap[5]);
private:
    int X,Y,doorFree,doorClosed,Hor,Ver,UL,UR,DR,DL;
    void makeBrackets(); //создание границ
    int printBag(int lineNumber);
};
C++
1
2
3
4
5
6
7
8
#include "Desk.h"
#include "Entity.h"
int EntityX,EntityY,eType;
void Entity::Go(Desk *DeskPoint, int x, int y){
        DeskPoint->desk[EntityX][EntityY]=-1;// стираем
        DeskPoint->desk[x][y]=eType; //записываем
        EntityX=x; EntityY=y; //присваиваем новые координаты
    }
Все ОК.
Значит, у меня что-то с компилятором. Плохо сегодня работает.
Спасибо!
0
25.12.2013, 21:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2013, 21:29
Помогаю со студенческими работами здесь

error C2061: синтаксическая ошибка: идентификатор "x"
// Laboratornaa.cpp: определяет точку входа для консольного приложения. // #include"stdafx.h"...

Ошибка в классах
Добрый день! Мне необходимо разбить 1 класс на 2: базовый и производный! Я вроде сделал, но...

Ошибка в классах
Подскажите что нужно сделать, что бы конструктор видел класс Cex(Цех) Перепишите текст программы и...

Ошибка в классах
Пишет ошибку error C2259: Matrix: невозможно создать экземпляр абстрактного класса Что это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru