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

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

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

Author24 — интернет-сервис помощи студентам
Коротко, есть класс 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
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
~ Эврика! ~
1257 / 1006 / 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
28.11.2013, 14:18
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru