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

Конструктор копирования не работает - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. http://www.cyberforum.ru/cpp-beginners/thread330153.html
Упорядочить строки матрицы по возрастанию значений элементов ее главной диагонали методом обмена. Может кто-то помочь ?
C++ Затруднение со scanf Вот моя переписанная программа, затрудняюсь со scanf (как переделать на С++ ?) #include <iostream> #include <stdio.h> #include <math.h> #include <windows.h> using namespace std; int main() { SetConsoleCP(1251); //Òóïêà, øðèôò íå çàáóäü Lucida http://www.cyberforum.ru/cpp-beginners/thread330108.html
Удаление столбца и строки в матрице C++
Доброго времени суток всем. У меня возникла следующая проблема при программировании на с++, а конкретно с удалением строки и столбца в матрице(нужно удалить строку и столбец где находится максимальный элемент). Я смог найти максимальный элемент и удалить строку, а при удалении столбца другие столбцы идущие после него переносятся под матрицу, помогите исправить пожайлуста. Вот код программы:...
C++ Дано натуральное число N. Выяснить, сколько положительныхэлементов содержит матрица
Помогите аписать программу на Си, вот условие:Дано натуральное число N. Выяснить, сколько положительных элементов содержит матрица Аij , где i,j=1,....,n; Аij = sin(i^2-j^2/n)
C++ Работа с ФС http://www.cyberforum.ru/cpp-beginners/thread330060.html
Доброго времени суток. Подскажите, есть ли функции в с++ для копирования и перемещения папки, или всеже свою писать придется?) Для файлов знаю есть CopyFile(), ну и любимые досовские комманды.
C++ Запуск почтового клиента c++ День добрый! Возникла следующая задача: при клике по объекту (не важно по какому, да и не важно при каком триггере) должно происходить следующее: открываться почтовый клиент по-умолчанию с уже заполненными данными (которые я туда подсуну - из переменной, или файла или свойства какого другого объекта): "Кому" и Тело самого письма. Как реализовать на C++? Среда - Microsoft Visual Studio... подробнее

Показать сообщение отдельно
DigsiL
9 / 9 / 1
Регистрация: 14.01.2011
Сообщений: 113
06.07.2011, 12:29  [ТС]     Конструктор копирования не работает
НУ вот дописал я программу теперь у меня вопрос по поводу метода Set правильно у меня реализована программа???
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <iostream>
#include <windows.h>
using namespace std;
struct Book
{
    char *term;
    char *definition;
};
class Dictionary
{
private:
    Book *string;
    int size;
public:
    Dictionary()
    {
        size=2;
        string=new Book [size];
        //------------------------------------------------------------------
        string[0].term=new char [strlen("Компьютер")+1];
        strcpy(string[0].term,"Компьютер");
        string[0].definition=new char [strlen("Вычислительная техника")+1];
        strcpy(string[0].definition,"Вычислительная техника");
        //------------------------------------------------------------------
        string[1].term=new char [strlen("Деньги")+1];
        strcpy(string[1].term,"Деньги");
        string[1].definition=new char [strlen("Универсальное средство обмена")+1];
        strcpy(string[1].definition,"Универсальное средство обмена");   
        //------------------------------------------------------------------
    }
    void Show ()
    {
        cout<<string[0].term<<" "<<string[0].definition<<endl;
    }
    const char* operator [](char *str)const
    {
        for (int i=0;i<size;i++)
        {
            if(stricmp(string[i].term,str)==0) 
            {
                return string[i].definition;
            }
            
        }
        return "Ошибка";
    }
    //Конструктор копирования
    Dictionary (const Dictionary & obj)
    {
        size=obj.size;
        string=new Book [size];
        for (int i=0;i<size;i++)
        {
            string[i].term=new char [strlen(obj.string[i].term)+1];
            strcpy(string[i].term,obj.string[i].term);
            string[i].definition=new char [strlen(obj.string[i].definition)+1];
            strcpy(string[i].definition,obj.string[i].definition);
        }
    }
    void  Set (char *term,char *definition)
    {
        Book *temp=new Book [size+=1];
        for (int i=0;i<size-1;i++)
        {
            temp[i]=string[i];
        }
        string = new Book [size];
        for (int i=0;i<size;i++)
        {
            string[i]=temp[i];
            if (size==i+1)
            {
                string[i].term=new char [strlen(term)+1];
                strcpy(string[i].term,term);
                string[i].definition=new char [strlen(definition)+1];
                strcpy(string[i].definition,definition);
            }
        }
    } 
    ~Dictionary()
    {
        for (int i=0;i<size;i++)
        {
            delete string[i].term;
            delete string[i].definition;
        }
        delete []string;
    }
};
void main ()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    int size=1;
    Dictionary *dict=new Dictionary [size];
    int key;
    char term[20];
    char definition[100];
    do 
    {
        cout<<"1.Поиск по словарю"<<endl;
        cout<<"2.Добавить термин в словарь"<<endl;
        cin>>key;
        switch (key)
        {
        case 1:
            {
                cin.ignore();
                cin.getline(term,20);
                cout<<dict[0][term]<<endl;
            }break;
        case 2:
            {
                cout<<"Введите термин:"<<endl;
                cin.ignore();
                cin.getline(term,20);
                cout<<"Введите определение:"<<endl;
                cin.getline(definition,100);
                dict[0].Set(term,definition);
            }break;
        }
    } while (key!=0);
    delete []dict;
}
 
Текущее время: 08:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru