Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TamaGOch
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 152
#1

Функция внутри структуры использует указатель, как поле этой структуры - C++

28.11.2013, 11:41. Просмотров 853. Ответов 4
Метки нет (Все метки)

Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp,
есть файл GlobalItems.h, где хранятся глобальные структуры проекта
внутри GlobalItems.h есть такая структура:
C++
1
2
3
4
5
6
7
8
extern class A;
struct B {
A* A_Obj;
void Func ( )
{
A_Obj->Example ();
}
};
вылетает что-то типа: Error 4 error C2027: use of undefined type 'A' c:\users\...\GlobalItems.h

в чём не прав?

на всякий случай: строки #include "A_class.h" в ГлобалИтемс нет намеренно, т.к. в самом файле A_class.h есть #include "GlobalItems.h", поэтому через extern
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 11:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция внутри структуры использует указатель, как поле этой структуры (C++):

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? - C++
Ничего нельзя. Итак, новичкам напомню, что после выполнения кода FILE* f= fopen ("file.txt", "w"); в переменной f содержится...

Объявить указатель на структуру внутри структуры - C++
Объявить указатель на структуру внутри структуры. Добавлено через 5 часов 24 минуты Просто отрывок кода.

Указатель на указатель внутри структуры - C++
Приветствую. Есть 2 структуры: enum category { Technical, History, Fiction }; struct BOOK { char author; char name; int...

Списки структур. Указатель на узел другого списка внутри структуры - C++
Имеется следующий кусок кода: struct date { int day; int month; int year; }; /* Пациент */

Как задать указатель для структуры (и не только) - C++
Есть такая задача: Напишите фрагмент кода, который динамически выделит память для структуры, описанной в вопросе 6, и затем прочитает...

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

4
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
28.11.2013, 11:45 #2
Память под A_Obj не выделена
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct B {
A* A_Obj;
public:
B()
{
   A_Obj = new A();
}
void Func ( )
{
A_Obj->Example ();
}
};
1
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
28.11.2013, 11:48 #3
Цитата Сообщение от TamaGOch Посмотреть сообщение
в чём не прав?
В том, что
C++
1
class A;
не объявляет класс. Эта строка не содержит определения класса. Её достаточно, чтобы сказать компилятору: "Вот у меня есть такой класс где-то, можешь не паниковать, когда я захочу хранить указатели на такие объекты". Но она не говорит ему: "У объектов класса A есть метод Example".

Цитата Сообщение от TamaGOch Посмотреть сообщение
на всякий случай: строки #include "A_class.h" в ГлобалИтемс нет намеренно, т.к. в самом файле A_class.h есть #include "GlobalItems.h", поэтому через extern
You're doing it wrong. Используйте #pragma once или include guards чтобы избежать проблем с повторным определением при циклическом включении.
0
TamaGOch
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 152
28.11.2013, 11:54  [ТС] #4
MrCold, спасибо,
OhMyGodSoLong у меня стоит на ifndef и define , думал помогут, но не получалось, попробую конечно ещё раз, спасибо за объяснение
0
Tulosba
28.11.2013, 14:18     Функция внутри структуры использует указатель, как поле этой структуры
  #5

Не по теме:

Цитата Сообщение от TamaGOch Посмотреть сообщение
OhMyGodSoLong у меня стоит на ifndef и define
какое сочетание ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2013, 14:18
Привет! Вот еще темы с ответами:

Как глобально объявить указатель структуры, и переменные хранящиеся в ней? - C++
Как глобально объявить указатель структуры, и переменные хранящиеся в ней? Вот указатель вроде объявил, но всё же есть ошибки. #include...

Как сделать локализацию внутри класса/структуры? - C++
Как сделать локализацию внутри класса/структуры?

Как обратиться к полям структуры через указатель и объявление указателя на структуру - C++
Как обратиться к полям структуры через указатель и объявление указателя на структуру? #include "stdAfx.h" #include <iostream> ...

Как поместить поле структуры в scanf() - C++
Здравствуйте, уважаемые форумчане! Недавно написал несложную программу с использованием структур, но не смог заменить ввод/вывод на функции...


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

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

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