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

как создать классы с взаимными ссылками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не выходит перегрузка << и >> http://www.cyberforum.ru/cpp-beginners/thread759890.html
Добрый день формучане. Сперва хотелось бы попросить проверить правильность выполнения задания: Разработать абстрактный класс "правильный многоугольник". Разработать наследуемые классы "прав. треугольник", "квадрат" , "прав. 5тиугольник". Создать неоднородный дин. массив обьектов классов. Вычислить площадь. Перегрузить << и >>; #include <iostream> #include <clocale>
C++ В одномерном массиве вычислить минимальный по модулю элемент массива В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине – элементы, стоявшие в нечетных позициях и распечатать их адреса. http://www.cyberforum.ru/cpp-beginners/thread759888.html
Можно ли в char поместить больше одной буквы? C++
Вот у меня прога, которая переводит из сантиметров в дюймы и наоборот. В switch нужно ввести 1 букву, чтобы оно определило действие. Возможно ли(и если возможно, то как) сделать, чтобы char принимал не одну букву, а несколько? #include <iostream> using namespace std; void main() { char a; float b=2.54, c; cout<<"Input \"i\" if you want translate inch(es) to centimeter(s)\n";...
C++ написать программу которая суммирует матрицы
Напишите программу, которая суммирует матрицы. Размер матриц произвольный. Значения вводятся с клавиатуры
C++ Создать два массива: в одном хранятся чётные элементы исходного, в другом – нечётные http://www.cyberforum.ru/cpp-beginners/thread759859.html
3. Написать программу, которая из случайно заполненного массива из 50 элементов создаёт два массива: в одном массиве хранятся чётные элементы, в другом – нечётные. Также необходимо вывести количество чётных и нечётных элементов массива
C++ Динамически распределение памяти. Матрицы. Найти максимальный ниже побочной диагонали, и минимальный главной диагонали В матрице n-го порядка найти максимальный среди элементов , лежащих ниже побочной диагонали, и минимальный среди элементов , лежащих выше главной диагонали. подробнее

Показать сообщение отдельно
Archont
8 / 8 / 0
Регистрация: 29.09.2012
Сообщений: 47
12.01.2013, 22:38     как создать классы с взаимными ссылками
Доброго времени суток.

Есть класс с некоторым функционалом, и есть n классов которые должны с этим функционалом работать.
Для этого в каждом из n классов объявил ссылку на основной класс. Проблема в том что компилятор требует объявления класса до его первого использования. Сперва пробовал объявить все классы в заголовках своих файлов а потом добавить заголовки остальных классов с помощью include, но оказалось что включения либо "зацыкливаются", либо просто не включаются повторно в другой файл если они указаны внутри блока #ifndef. Потом собрал все в заголовке одного файла, получилось примерно так как указано ниже:

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
class main;
 
class A
{
   main* m;
   f()
   {
      m->f();
   }
};
 
class B
{
  main* m;
   f()
   {
      m->f();
   }
};
 
class main
{
    void f();
};
в результате компилятор ругнулся:
[BCC32 Error] main.h(139): E2315 'f' is not a member of 'main', because the type is not yet defined

Подскажите, пожалуйста, как можно решить подобную задачу.

Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru