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

Связанные классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значение Ʃi http://www.cyberforum.ru/cpp-beginners/thread750343.html
Вычислить значение Ʃi! для i, что изменяется от 1 до n. Воспользоваться соотношением Ʃi! = 1 + 1*2 + 1*2*3 + ... + 1*2*3*...*n = 1+2*(1+3*(1+...+n*(1)...))
C++ Как воссоздать дерево, зная ин ордер и пост ордер? Буду благодарен за любой совет, или алгоритм. Спасибо! Добавлено через 34 минуты Спасибо, разобрался, все заработало. http://www.cyberforum.ru/cpp-beginners/thread750341.html
C++ Перевод указателя в начало файла
Мне нужно перевести указатель в начало файла для дальнейшей работы с ним. Обращение и работа с файлом реализована с помощью ifstream.
Прочитать слдующие определения C++
Помогите грамотно прочитать следующие определения. Буду очень благодарен за помощь.
C++ Извлечение .exe из ресурса http://www.cyberforum.ru/cpp-beginners/thread750302.html
Помогите извлеч екзешку на компютер пожалуста.
C++ прямоугольник и овал Всем добрый вечер Кто поможет ? Группы из прямоугольника и овала меняя свою окраску и стиль движутся по периметру экрана подробнее

Показать сообщение отдельно
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
31.12.2012, 08:06     Связанные классы
Есть несколько классов,каждый объект которого имеет объект другого класса в качестве элемента данных
Это класс Dictionary,в состав которого входит элемент класса Tree и наоборот
Код не компилируется из-за того,что в файле с определением класса Dictionary есть элемент класса Tree и компилятор ругается,что нет такого класса
ExDict.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
#ifndef DICTIONARY_H
#define DICTIONARY_H
 
class Tree;
class DictionaryManager;
 
#include "StdAfx.h"
#include "Tree.h"
#include "DictionaryManager.h"
 
#include<Windows.h>
 
 
class Dictionary
{
    friend class Tree;
    friend class DictionaryManager;
 
    public:
 
    Dictionary(string DictName)
    {
        CurrentDictionary = DictName;
 
        DataTree->CurrentDict = this;
    }
 
    
    bool correct(ID *id);//проверяем корректность введённого ID слова
    bool DeleteWord();//удаляем слово /ещё не реализовано!!!
    //---------------------------
 
 
    //функции для работы с данными словаря
    //---------------------------
    bool LoadData();//загрузить данные из словаря
    bool WriteData();//записать данные в словарь
    bool WriteNewPrimaryWord(DATA *New);//записываем новое основное слово
    bool WriteNewAssociatedWord(string NewAssociatedWord,unsigned int position);//записать в файл словаря новое ассоциированное слово
    bool WriteNewID(ID NewID,unsigned int position);//записать в файл словаря новый ID слова
    void SortByAlphabet(vector<DATA *> &SortedWords, TreeNode *ptr);
    void SortByPosition(map<unsigned int, DATA, less<unsigned int>> &SortedTree, TreeNode *ptr);
    //---------------------------
 
    
 
    private:
    string          CurrentDictionary;//название текущего словаря
 
    Tree *          DataTree;//дерево с данными о словах
};
 
#endif DICTIONARY_H

Tree.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
54
55
56
#ifndef TREE_H
#define TREE_H
 
class Dictionary;
class DictionaryManager;
 
#include "StdAfx.h"
#include "TreeNode.h"
#include "ExDict.h"
 
class Tree
{
friend class Dictionary;
friend class DictionaryManager;
 
public:
    //конструктор,указываем лишь,что изначально кол-во слов равно 0
    Tree()
    {
        RootNode        = NULL;
        CurrentDict     = NULL;
        CountOfWords    = 0;
    }
    
    ~Tree()
    {
        ReleaseMemory(RootNode);
    }
 
    //вставить новый узел в древо
    int InsertNode(DATA *NewNode);
 
    //добавить новое ассоциированное слово
    int InsertAssociatedWord(
        string NewAssociatedWord,//ассоциируемое слово
        string PrimaryWord);//основное слово,к которому мы добавляем
    
    //добавить новый ID основного слова
    int InsertNewID(
        ID NewID,//новый ID
        string PrimaryWord);//основное слово,к которому мы добавляем
 
    //поиск слова
    int FindWord(
        string Word,//слово,которое ищем
        DATA *WordData);//переменная,в которую записываем информацию о найденном слове
 
    void ReleaseMemory(TreeNode *CurrentNode);//освобождаем память,выделенную для узлов дерева
 
private:
    Dictionary  *CurrentDict;//текущий словарь
    TreeNode    *RootNode;//корневой узел
    unsigned int CountOfWords;//кол-во слов в дереве
};
 
#endif TREE_H

Собственно ошибки компилятора
1>d:\projects\dictionary\dictionary\exdict.h(24): error C2027: использование неопределенного типа "Tree"
1> d:\projects\dictionary\dictionary\treenode.h(4): см. объявление "Tree"
1>d:\projects\dictionary\dictionary\exdict.h(24): error C2227: выражение слева от "->CurrentDict" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> ExMenuForDictionary.cpp
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru