9 / 9 / 3
Регистрация: 11.12.2012
Сообщений: 152
1

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

28.11.2013, 11:41. Показов 4356. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2013, 11:41
Ответы с готовыми решениями:

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

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

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

Сортировка через указатель на поле структуры
Здравствуйте! Совсем не понимаю, как реализовать сортировку пузырьком с помощью указателя на поле...

4
873 / 771 / 173
Регистрация: 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
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 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
9 / 9 / 3
Регистрация: 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
какое сочетание ... :D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2013, 14:18

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

Функция, которая заполняет поле заданной структуры данными с клавиатуры
написать функцию, которая заполняет поле заданной структуры данными, данными с клавиатуры (мы...

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

Передачи структуры и функция структуры
Здравствуйте, у меня такое задание Есть некая структура struct MySettings { int a; int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru