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

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

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

Author24 — интернет-сервис помощи студентам
вощм... пишу программу... есть у меня например 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2009, 12:00
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

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

Добавлено через 8 минут
предварительная компиляция к томужы вызывает ошибку переопределения((((
0
04.12.2009, 22:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2009, 22:11
Помогаю со студенческими работами здесь

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

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

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

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


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

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