Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/23: Рейтинг темы: голосов - 23, средняя оценка - 4.91
 Аватар для -MefistofeL-
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383

Переплетение классов: объявление и инициализация

26.11.2009, 12:00. Показов 5240. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вощм... пишу программу... есть у меня например 2 класса: Object (объект) и tck (точка) мне необходимо сделать так чтобы в объекте содеражался массив точек, а в точке - укозатель на объект к которому она принадлежит. делаю все как положенно... в программу включаю заголовочные файлы с шаблонами классов, которые включаются в фалики спп с объявлениями классов... как сделать так что бы кампилятор в инициализации одного класса не ругался на неинициализированные поля и методы другого класса?

(прадва у меня еще дофига других классов но эти два самые главные)

Object.h:

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
25
26
27
28
29
30
31
32
#pragma once
 
 
class Object
{
    friend class tck;
    friend class NET;
    friend class speed;
    friend class force;
 
    char *name;
    
    
public:
    tck place;
    static int real_N;
    bool stat;
    int N_tck;
    float m;
    tck* contur;
    Object (float, float, float _m,int n); //центр, масса,количество точек
    ~Object();
    virtual void step ();
    virtual void step (force);
    void forr(force);
    void add(int, tck);
    virtual void drow();
    static NET** net;
    static int NET_n;
    bool operator == (Object &);
    Object *operator = (Object &);
};
tck.h:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once
 
 
 
class tck
{
 
    friend class Object;
    friend class NET;
    friend class speed;
    friend class force;
 
public:
    Object* my;
    float x;
    float y;
    float z;
    float m;
    force f;
    speed v;
 
    tck (Object *t, float _x, float _y, float _z):
    x (_x),
    y (_y),
    z (_z),
    f (this),
    v (this)
    {
        my=t;
    }
 
    tck (Object*);
 
    tck()
    {
        m=1;
        my=NULL;
        f.reload(nuLL,nuLL,nuLL,this);
        v.reload(nuLL,nuLL,nuLL,this);
    }
 
    ~tck()
    {
        
    }
    void reload(float,float,float,Object*);
    void freload(float,float,float);
    tck &operator = (tck &);
    void step (float,bool);
 
    
 
};
включение файлов:

C++
1
2
3
4
5
6
#include "force.h"
#include "speed.h"
#include "Object.h"
#include "Earth.h"
#include "tck.h"
#include "NET.h"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2009, 12:00
Ответы с готовыми решениями:

С++, объявление классов
Здравствуйте товарищи. Возникла следующая проблема: пусть есть два класса: А и В; в классе А есть переменная типа В, в классе В есть...

Как обойти ошибку (инициализация структур/классов, имеющих свойства)
Как только структура объявлена с ключевым свойством property - так сразу исчезает возможность ее инициализации (более полный код,...

Объявление классов afxinet.h
Доброго времени суток. У меня есть концептуальный вопрос) Вот текст программы: #include "afxwin.h" #include...

26
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
29.11.2009, 23:58
Студворк — интернет-сервис помощи студентам
А ты не "там", а с нуля. Возьми только Object.h и tck.h, выкинь оттуда всё лишнее и склепай из них программу. Просто по примерам из твоего первого поста, перед классом так же надо влепить предописания "class NET;" "class force;" и т.д.

Добавлено через 1 минуту
-MefistofeL-, ну ты же программист. Ну неужто не понимаешь, что по таким огрызкам кода твою проблему не решить?
0
 Аватар для -MefistofeL-
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
30.11.2009, 00:01  [ТС]
мля.... это нереально написать снуля все так...на это нужно минимум 2 дня((

Добавлено через 58 секунд
я еще раз говорю!!! код тут не поможет!

Добавлено через 55 секунд
здесь достаточно понять, что два класса используют объекты друг друга и это побуждает ошибку
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
30.11.2009, 00:05
> здесь достаточно понять, что два класса используют объекты друг друга и это побуждает ошибку

Я это понял. И написал тебе, как это проблема рулится
0
 Аватар для -MefistofeL-
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
30.11.2009, 00:06  [ТС]
о_О где?

#pragma once????
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
30.11.2009, 00:13
В посте 13. Проблема именно в этом. Либо есть какая-то ещё, которую в твоих постах я так и не увидел
0
 Аватар для -MefistofeL-
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
30.11.2009, 00:24  [ТС]
нееет..... ругается имено методы... когда я уже выделяю память под объект класса и так далее... она вообще мне жоско пишет, что не знает этого класса
0
 Аватар для -MefistofeL-
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
04.12.2009, 22:11  [ТС]
Трабла почти решена... но появилась проблемка error LNK2001: неразрешенный внешний символ причом ругается на объекты моих классов это и это к моему случаю точно не относятся... посмотрел еще здесь. откомпалировал свои классы но толком не нашел, куда их впихнуть - попробовал туда, где либы(доп зависимости).. не помогло((( снова надеюсь на отзывчивость!!!

Добавлено через 8 минут
предварительная компиляция к томужы вызывает ошибку переопределения((((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2009, 22:11

Объявление и инициализация переменных
помогите исправить, пожалуйста.... Решение: #include <iostream.h> #include <math.h> double GetY (unsigned short int Number); ...

Объявление и инициализация динамической матрицы
Ребят, только начал разбираться с матрицой. примерно я знаю как написать матрицу, но не знаю как написать динамическую матрицу, и чтоб...

Основные типы данных, объявление и инициализация переменных
ребятки, попробуйте 1) Объявить в программе переменные и константы (выбор обосновать) для хранения следующих данных: а) число , ...

Объявление ,инициализация ы вывод на экран двусторонней очереди
Добрый вечер! Ребята подскажите ,я правильно все сделал ? Задание :объявить двустороннюю очередь с элементами целого типа и именем ...

Сборка проекта, объявление и инициализация конструкторов в одном месте
Всем привет! Столкнулся с такой проблемой как "много файловая" программа. А именно если конструктор и диструктор описывать например в A.h...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru