Форум программистов, компьютерный форум 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
10 / 10 / 1
Регистрация: 14.01.2011
Сообщений: 113

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

06.07.2011, 11:20. Просмотров 946. Ответов 14
Метки (Все метки)

Прошу вас помочь разобраться с конструктором копирования.
Проблема в следующем при вызове конструктора копирование вылетает ошибка не пойму в чем проблема.
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
#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;
        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);
        }
    }
    ~Dictionary()
    {
        delete []string;
    }
};
void Print (Dictionary c)
{
    c.Show();
}
void main ()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    int size=1;
    Dictionary *dict=new Dictionary [size];
    int key;
    char string[20];
    Print(dict[0]);//Проверяю конструктор копирования
    do 
    {
        cout<<"1.Вывести"<<endl;
        cin>>key;
        switch (key)
        {
        case 1:
            {
                cin.ignore();
                cin.getline(string,20);
                cout<<dict[0][string]<<endl;
            }break;
        case 2:
            {
            
            }break;
        }
    } while (key!=0);
    delete []dict;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru