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

Совместное использование классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шашки http://www.cyberforum.ru/cpp-beginners/thread32350.html
Вкратце опишу суть проблемы. Препод задал лабу делать что-то на подобии шашек. Только само задание состоит в том что, на доске появляется рандомное кол-во шашек на рандомных клетках. Пользователю дается возможность выбрать одну из шашек и сделать ей 1 ход. Задача состоит в том, чтобы проверить существует ли этот ход. по заданию - все. Возникшие вопросы: 1. Как осуществить рандомное...
C++ Динамические структуры - информация о книгах в библиотеке Надеюсь на вашу благосклонность... Нужна помощь составить программу для курсовой, учусь на первом курсе, только начали изучать С++, а уже дали курсовик, даже не знаю с чего начать...Если вас не затруднит, выделите немного времени, помогите пожалуйста! Я сам конечно пытаюсь сделать, рыскаю по и-нету в поисках доп. ин-фы о ДС, но буду рад, если кто-нибудь все же поможет... Вот условие задачи:... http://www.cyberforum.ru/cpp-beginners/thread32240.html
Подправить сортировку в проге C++
Мне необходимо переделать сортировку по возрастанию количества цифр в строке в сортировку по убыванию (это конкретная часть из программы). int Sort::fcel (char*a) { int b=0; for (int i=0; i<strlen(a); i++) if (a=='1'|| a=='2'|| a=='3'|| a=='4'|| a=='5'|| a=='6'|| a=='7'|| a=='8'|| a=='9'|| a=='0') b++; return b; };
C++ Как можно посчитать ширину дерева?
Товарищи!!!!! подскажите пожалуйста как можно посчитать ширину дерева!!!????? (под шириной дерева понимается максимальное количество елементов, находящихся на одном уровне) очень надо!!!
C++ Компилятор выдает ошибки http://www.cyberforum.ru/cpp-beginners/thread32012.html
Почему компилятор Microsoft Visual C++ 7.1 не хочет компилить вот этот код: #include <fstream> long a, b, c; int main(){ ifstream input("input.txt"); input >> a >> b >> c; ofstream output("output.txt");
C++ Работа с файлами Народ ниид хелп Создается тхт файл. куда записывается информация вводимая с клавы. инфа: Имя фамилия группа айди_номер возраст я так понимаю это используя записи. Записей не более 15 в файл сейв только имя, айди, группа стирание функция должна быть. подробнее

Показать сообщение отдельно
TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
02.05.2009, 21:36  [ТС]     Совместное использование классов
Ага это сработало, но вот с более сложным классом
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
#include <iostream>
#include <string>
#include "huff.h"
#include "tree.h"
 
#define ALPHABETSIZE 256
using namespace std;
 
int main() 
{
    Huffman h;
    //Tree2 *t = new Tree2;
    /*Huffman h;
    string str = "to be or not to be?";       // ??????? ??????
    int data[] = new int[str.lengh()];       // ??????????? ? ??????
    for (int i=0; i<str.lengh(); i++) 
        data[i]=(unsigned char)str[i]; 
    h.growTree( data );                       // ?????? ??????
    h.makeCode();                             // ??????? ????
    str = h.coder(data);
    cout<<str<<endl;
    cout<<h.decoder(str)<<endl;*/
    return 0;
}
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <string>
using namespace std;
#define ALPHABETSIZE 256
class Tree;
class Huffman
{
public:
    Huffman()
    {
        tree = new Tree;
        weights = new int[ALPHABETSIZE];
        code = new string[ALPHABETSIZE];
    };
 
    Tree *tree;     // ??????? ?????? ????????
    int *weights;   // ???? ????????
    string *code;   // ???? ????????
 
    /*int getLowestTree(int used)                       // ???? ????? "??????" ??????
    {
        int min=0;
        for (int i=1; i<used; i++)
            if (tree[i].weight < tree[min].weight ) 
                min = i;
        return min;
    }
 
    void growTree( int[] data )                         // ?????? ??????
    {    
        for (int i=0; i<data.length; i++)               // ??????? ???? ????????
            weights[data[i]]++;
                                                        //  ????????? ?????? ?? "????????" ????????
        int used = 0;                                   //  ? ??????????????? ?????????
        for (int c=0; c < ALPHABETSIZE; c++) 
        {
            int w = weights[c];
            if (w != 0) 
                tree[used++] = new Tree(c, w, true);
        }
        while (used > 1)                                // ?????? ??????? ?????? ????? 
        {                    
            int min = getLowestTree( used );            // ???? 1 ?????
            int weight0 = tree[min].weight;
            Tree temp = new Tree();                     // ??????? ????? ??????
            temp.child0 = tree[min];                    // ? ????????? 1 ?????
            tree[min] = tree[--used];                   // ?? ????? 1 ????? ??????
                                                        // ????????? ?????? ? ??????
            min = getLowestTree( used );                // ???? 2 ????? ?
            temp.child1 = tree[min];                    // ????????? ?? ? ???.???.
            temp.weight = weight0 + tree[min].weight;   // ??????? ??? ???.???.
            tree[min] = temp;                           // ???.???. ?????? ?? ????? 2 ?????
        }                                               // ???! ???????? 1 ?????? ????????
    }
 
    void makeCode()                                     // ????????? ?????????? ????? ????????
    {
        tree[0].traverse( "", this);
    }
 
    string coder( int[] data )                          // ???????? ?????? ??????? ?? 1 ? 0
    { 
        string str = "";
        for (int i=0; i<data.length; i++) 
            str += code[data[i]];
        return str;
    }
 
    string decoder(String data) 
    {
        string str="";                                  // ????????? ? ????? ?????? ?? ?????????
        int l = 0;                                      // ????, ???? ??, ?? ??????????? ??? ...
        while(data.length() > 0)
        {
            for (int c=0; c < ALPHABETSIZE; c++) 
                if (weights[c]>0 && data.startsWith(code[c]))
                {
                    data = data.substring(code[c].length(), data.length());
                    str += (char)c;
                }
        }
        return str;
    }*/
};
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
#include <string>
using namespace std;
class Huffman;
class Tree
{
public:
    Tree *child0;   // ??????? "0" ? "1"
    Tree *child1;
    bool leaf;      // ??????? ????????? ??????
    int character;  // ??????? ??????
    int weight;     // ??? ????? ???????
    Tree()
    {
        cout<<"gen"<<endl;
    };
    Tree(int ch, int w, bool lf) 
    {
        leaf = lf;
        character = ch;
        weight = w;
    };
 
/*  ????? ?????? ? ?????????? ?????
    1. "???????????" ???????? ?????? ? ???????? ??? ???????? ? ??????
    2. ?????????? ?????? ????? ????????? (? ?????????????? ????).
    3. ?????????? ?????? ?????? ?????????.
*/
    void traverse(string code, Huffman h) 
    {
        if (leaf) 
        {
            cout<<(char)character<<"  "<<weight<<"  "<<code<<endl;
            h.code[character] = code;
        }
        if ( child0 != NULL) 
            child0->traverse(code + "0", h);
        if ( child1 != NULL) 
            child1->traverse(code + "1", h);
    }
};
uff.h(10) : error C2512: 'Tree' : no appropriate default constructor available
Тоесть в итоге все, что я мудрил это сделал, что оно работает методом подключения друг друга, но тогда не как это все подключить к Мэйну. Вернувшись к чему начал получаю ту же ошибку.
 
Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru