9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
1

Обявление классов

04.02.2012, 03:46. Показов 719. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вобщем получалась такая ситуация, есть 2 класса
C++
1
2
3
4
5
6
7
8
class A {
 public:
  SomeMethod( B *param );
}
class B {
 public:
  SomeMethod( A *param );
}
Как указать первому классу что второй обьявлен? Написал перед классом А строку
C++
1
class B;
Скомпилировалось, но компилятору что-то не понравилось.
Код
warning: possible problem detected in invocation of delete operator:
warning: 'param' has incomplete type
warning: forward declaration of 'struct B'
note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.
Внимание вопрос: Как исправить варнинги?
И ещё вопрос по меткам, в одном файле есть строка
C++
1
MY_GOTO:
в другом
C++
1
goto MY_GOTO;
компилятор ругается на первый файл что не используемая метка, на второй что она не определна. Как быть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2012, 03:46
Ответы с готовыми решениями:

Обявление шаблонного класса
Как-то с пониманием С++ вроде уже все норм, осталась только одна тема немного темная - шаблоны,...

Функциия. Ее обявление. Файлы *.срр и *.h. Непонятна мне ошибка
Доброго времени суток. После долгого перерыва вспоминаю основы С++. Дошел до функций. И...

почему обявление уровня доступа является нежелательным способом предявления доступа, в отличии от использования пространстрва имён?
почему обявление уровня доступа является нежелательным способом предявления доступа, в отличии от...

можно ли изменить имена объектов cin и cout? залесть в хедер (знаю, этого лучше не делать), и изменить обявление обектов? к примеру на chitai и pishi?
можно ли изменить имена объектов cin и cout? залесть в хедер (знаю, этого лучше не делать), и...

3
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
04.02.2012, 04:13 2
1. Вроде так без warning'ов проходит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class B;
 
class A
{
public:
    void SomeMethod( B *param ){};
};
 
class B
{
public:
    void SomeMethod( A *param ){};
};
 
int main()
{
    A a;
    B b;
    return 0;
}
0
Модератор
Эксперт С++
13498 / 10752 / 6407
Регистрация: 18.12.2011
Сообщений: 28,692
04.02.2012, 06:47 3
По поводу goto.
Язык C++ имеет модульную архитектуру.
Каждый модуль (функция) описывается в каком-то одном файле.
Переходы goto выполняются в пределах модуля (т.е. нельзя перейти в другой модуль).
Если надо выполнить какой-то кусок кода из другого файла, то оформите его
в виде функции и вызывайте из любого места проекта.
1
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
04.02.2012, 16:02  [ТС] 4
Цитата Сообщение от igorrr37 Посмотреть сообщение
1. Вроде так без warning'ов проходит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class B;
 
class A
{
public:
    void SomeMethod( B *param ){};
};
 
class B
{
public:
    void SomeMethod( A *param ){};
};
 
int main()
{
    A a;
    B b;
    return 0;
}
хмм... Это часть проэкта qt, компилируется через makefile (компилятор mingw), и как я понимаю с флагом -Wall
0
04.02.2012, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2012, 16:02
Помогаю со студенческими работами здесь

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение,...

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как...

Объекты классов не видны во вложенной функции одной из классов
Такая вот проблема. Есть функция play() класса Game, где создаются объекты классов Game, Character,...


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

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

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