Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
mxs89
11 / 11 / 8
Регистрация: 13.04.2015
Сообщений: 159
Завершенные тесты: 1
1

Найти причины и способы исправления ошибки "error C2065: необъявленный идентификатор"

31.01.2016, 14:53. Просмотров 527. Ответов 9
Метки нет (Все метки)

имеется

C++
1
2
3
4
5
6
7
8
9
10
11
12
f1.h
 
typedef struct
{
int some;
} tStruct;
 
f2.h
 
#include<f1.h>
 
int function(tStruct v);
при построении вываливается ошибка error C2065: tStruct: необъявленный идентификатор

Добавлено через 44 минуты
уточнения:

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
main.cpp
#include<main.h>
 
main.h
#include<base.h>
 
base.h
#include<f1.h>
#include<f2.h>
 
f1.h
#include<base.h>
namespace my
{
typedef struct
{
int i;
}
tStruct;
}
 
f2.h
#include<base.h>
namespace my
{
int function(tStruct v);
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2016, 14:53
Ответы с готовыми решениями:

Найти причины и способы исправления ошибки "fatal error LNK1120: 1 неразрешенных внешних элементов"
fatal error LNK1120: 1 неразрешенных внешних элементов Вот такая штука. Все уже делал.. В чем...

Найти причины и способы исправления ошибки "error LNK2019: ссылка на неразрешенный внешний символ"
Добрый день! Подскажите пожалуйста, писала программу. Но при компиляции выдает ошибку: error...

Найти причины и способы исправления ошибки "error C2109: для индекса требуется массив или указатель"
Добрый день! Подскажите пожалуйста, писала программу, но на протяжении всей программы для...

Найти причины и способы исправления ошибки "Функция не является членом класса"
Хай. Вижла сошла сума, то ли я уже переработал. #pragma once #ifndef CMATRIXH # define CMATRIXH...

Найти причины и способы исправления ошибки "Segmentation fault" в заданном коде
Здравствуйте. С языком c++ и программировании в целом только знакомлюсь. Получил задание написать...

9
avgoor
1065 / 619 / 158
Регистрация: 05.12.2015
Сообщений: 1,781
31.01.2016, 14:59 2
Цитата Сообщение от mxs89 Посмотреть сообщение
#include<main.h>
Может #include "main.h"?
0
Apostol584
246 / 152 / 118
Регистрация: 26.11.2012
Сообщений: 381
Завершенные тесты: 2
31.01.2016, 15:09 3
вот примерно так
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
29
30
31
32
33
34
35
36
37
38
f1.h
#ifndef _F1_H_
#define _F1_H_
namespace my
{
    typedef struct
    {
        int i;
    }
    tStruct;
}
#endif
 
f2.h
#ifndef _F2_H_
#define _F2_H_
#include "f1.h"//подключаем файл со структурой
 
namespace my
{
    int function(tStruct v){
        return 123;
    }
}
#endif
 
main.cpp
#include <iostream>
#include "f2.h"
 
int main()
{
    my::tStruct v;
    v.i = 0;
    std::cout << my::function(v) << std::endl;
    system("pause");
    return 0;
}
0
SergioO
169 / 185 / 90
Регистрация: 13.12.2015
Сообщений: 1,004
31.01.2016, 15:12 4
Цитата Сообщение от avgoor Посмотреть сообщение
Может #include "main.h"?
все равно найдет. я даже так писал
#include <any>
и все работало
Цитата Сообщение от mxs89 Посмотреть сообщение
C++
1
2
3
4
5
f1.h
typedef struct
{
int some;
} tStruct;
странное какое-то объявление
typedef и struct - это служебные слова, а где сам индентификатор?
например
C++
1
2
struct node { Item item; node *next; }; 
typedef node *link;
Добавлено через 2 минуты
C++
1
2
3
4
5
struct tStruct
{
int some;
} ;
typedef tStruct *pStrct
0
31.01.2016, 15:12
avgoor
1065 / 619 / 158
Регистрация: 05.12.2015
Сообщений: 1,781
31.01.2016, 15:15 5
Цитата Сообщение от SergioO Посмотреть сообщение
странное какое-то объявление
typedef и struct - это служебные слова, а где сам индентификатор?
Вполне нормальное объявление.
typedef Безымянная_структура {int i;} tSruct;
0
mxs89
11 / 11 / 8
Регистрация: 13.04.2015
Сообщений: 159
Завершенные тесты: 1
31.01.2016, 15:49  [ТС] 6
я понял, что при построении неправильная последовательность файлов или цикличность, вообщем сделал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
main.h
#include<base.h>
 
base.h
#include<f.h>
#include<f1.h>
#include<f2.h>
 
f.h
 
f1.h
#include<f.h>
 
f2.h
#include<f.h>
#include<f1.h>
Добавлено через 12 секунд
спасибо за помощь!
0
Apostol584
246 / 152 / 118
Регистрация: 26.11.2012
Сообщений: 381
Завершенные тесты: 2
31.01.2016, 17:23 7
Цитата Сообщение от mxs89 Посмотреть сообщение
я понял, что при построении неправильная последовательность файлов или цикличность, вообщем сделал так:
за этим следить - нервы тратить

C++
1
2
3
4
#ifndef FILENAME_H_
#define FILENAME_H_
//код
#endif
эта конструкция исключит повторный вызов файла
0
mxs89
11 / 11 / 8
Регистрация: 13.04.2015
Сообщений: 159
Завершенные тесты: 1
01.02.2016, 11:36  [ТС] 8
в файлах использовал
C++
1
2
3
4
5
#pragma once
#ifndef FILENAME_H_
#define FILENAME_H_
//код
#endif
все равно ошибка
0
Ilot
Эксперт С++
1851 / 1205 / 346
Регистрация: 16.05.2013
Сообщений: 3,173
Записей в блоге: 5
Завершенные тесты: 1
01.02.2016, 11:52 9
А если так:
C++
1
2
3
4
5
6
7
namespace my
{
    using my::tStruct;
    int function(tStruct v){
        return 123;
    }
}
0
mxs89
11 / 11 / 8
Регистрация: 13.04.2015
Сообщений: 159
Завершенные тесты: 1
01.02.2016, 12:41  [ТС] 10
пробовал, ошибка была, что то типа tStruct не является членом my
0
01.02.2016, 12:41
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2016, 12:41

Найти причины и способы исправления ошибки C4700: "использована неинициализированная локальная переменная"
#include&lt;iostream&gt; #include&lt;iomanip&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt;...

Найти причины и способы исправления ошибки "C1083: Не удается открыть файл включение" (книга Стенли Липпмана)
скачал язык программирования с++ базовый курс 5 издание липман. куда устанавливать файлы которые я...

Сортировка одномерного массива и ошибка "error C2065: _ необъявленный идентификатор"
Препод дал пример кода по сортировке одномерного массива, я его набрал в MV c++ 2010, и мне выдаёт...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.