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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.86
-MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
#1

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

26.11.2009, 12:00. Просмотров 3533. Ответов 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"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2009, 12:00     Переплетение классов: объявление и инициализация
Посмотрите здесь:

Объявление классов afxinet.h Visual C++
C++ Объявление ,инициализация ы вывод на экран двусторонней очереди
С++, объявление классов C++
Сборка проекта, объявление и инициализация конструкторов в одном месте C++
Чем отличается между собой объявление, инициализация и определение? C++
C++ Объявление взаимодействующих классов
Объявление и инициализация динамической матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17295 / 5543 / 347
Регистрация: 30.03.2009
Сообщений: 15,088
Записей в блоге: 26
29.11.2009, 23:58     Переплетение классов: объявление и инициализация #21
А ты не "там", а с нуля. Возьми только Object.h и tck.h, выкинь оттуда всё лишнее и склепай из них программу. Просто по примерам из твоего первого поста, перед классом так же надо влепить предописания "class NET;" "class force;" и т.д.

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

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

Добавлено через 55 секунд
здесь достаточно понять, что два класса используют объекты друг друга и это побуждает ошибку
Evg
Эксперт CАвтор FAQ
17295 / 5543 / 347
Регистрация: 30.03.2009
Сообщений: 15,088
Записей в блоге: 26
30.11.2009, 00:05     Переплетение классов: объявление и инициализация #23
> здесь достаточно понять, что два класса используют объекты друг друга и это побуждает ошибку

Я это понял. И написал тебе, как это проблема рулится
-MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
30.11.2009, 00:06  [ТС]     Переплетение классов: объявление и инициализация #24
о_О где?

#pragma once????
Evg
Эксперт CАвтор FAQ
17295 / 5543 / 347
Регистрация: 30.03.2009
Сообщений: 15,088
Записей в блоге: 26
30.11.2009, 00:13     Переплетение классов: объявление и инициализация #25
В посте 13. Проблема именно в этом. Либо есть какая-то ещё, которую в твоих постах я так и не увидел
-MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
30.11.2009, 00:24  [ТС]     Переплетение классов: объявление и инициализация #26
нееет..... ругается имено методы... когда я уже выделяю память под объект класса и так далее... она вообще мне жоско пишет, что не знает этого класса
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2009, 22:11     Переплетение классов: объявление и инициализация
Еще ссылки по теме:

C++ Объявление классов
C++ Объявление и определение классов
C++ Объявление и инициализация переменных
Основные типы данных, объявление и инициализация переменных C++
C++ Работа с классами. Объявление классов наследования - C++

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

Или воспользуйтесь поиском по форуму:
-MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
04.12.2009, 22:11  [ТС]     Переплетение классов: объявление и инициализация #27
Трабла почти решена... но появилась проблемка error LNK2001: неразрешенный внешний символ причом ругается на объекты моих классов это и это к моему случаю точно не относятся... посмотрел еще здесь. откомпалировал свои классы но толком не нашел, куда их впихнуть - попробовал туда, где либы(доп зависимости).. не помогло((( снова надеюсь на отзывчивость!!!

Добавлено через 8 минут
предварительная компиляция к томужы вызывает ошибку переопределения((((
Yandex
Объявления
04.12.2009, 22:11     Переплетение классов: объявление и инициализация
Ответ Создать тему
Опции темы

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