С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Помогите пожалуйста преобразовать функцию в деструктор. (Полностью рабочая программа уже написана) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что такое std::allocator<T> ? http://www.cyberforum.ru/cpp-beginners/thread446991.html
я так понял возвращает адрес чего то?
C++ Работа с двумя классами А)Базовый класс Б)Класс наследник А) Список списков с информацией об объектах сгруппированных по типу - продуктах питания: название, тип (мясо, рыба, крупа, фрукт, специя и т.д. и т.п.), форма... http://www.cyberforum.ru/cpp-beginners/thread446984.html
C++ Палиндром ввод с клавиатуры
Доброго времени суток:) Напишите программу,которая читает пятизначные целые и определяет,являются ли они палиндромами(пример палиндрома 12321,55555,41114).Решить без юзания массивов. Задача из...
C++ Не работает в release
Доброго времени суток, Столкнулся со следующей проблемой: При выполнении Debug Build - MFC программа работает корректно. Собираю Release build. Запускаю exe из папки Release. Окно запускается,...
C++ Не работает программма "перевертыш" http://www.cyberforum.ru/cpp-beginners/thread446946.html
Всем доброго времени суток. Пока только учусь программированию на с++ и решил написать программу в которую вводиш например "приветмир" а она тебе выдает "римтевирп". Написал код, скомпилировал а она...
C++ первый шаг он трудный самый! Как наверное понятно из заголовка, я решил изучить С++. Скачал книгу, компилятор Dev-C++. В книге написано создать свою первую программу, которая выглядит так: #include <iostream.h> void... подробнее

Показать сообщение отдельно
fors-dnet
3 / 3 / 0
Регистрация: 11.12.2011
Сообщений: 88

Помогите пожалуйста преобразовать функцию в деструктор. (Полностью рабочая программа уже написана) - C++

16.02.2012, 00:21. Просмотров 575. Ответов 5
Метки (Все метки)

Заранее благодарен всем кто поможет.

Здравствуйте, учусь на первом курсе и только разбираюсь с с++. Дошёл уже до деструктора. Полностью рабочая программа представлена ниже, я начал её переделывать (задание было оформить одну из функций как деструктор).
Программа сначала считывает данные с файла, потом сортирует их и сохраняет. Функцию сохранения данных в отдельный файл нужно по заданию оформить как деструктор. Помогите пожалуйста это сделать.

Три еррора:
Abonent::~Abonent: деструктор не может иметь тип возвращаемого значения
Abonent::~Abonent: ошибка в определении или объявлении функции; функция не вызвана
Abonent::~Abonent: ошибка в определении или объявлении функции; функция не вызвана
Не знаю как передать параметры в деструктор (пишет компилятор что этого вообще нельзя делать).


В качестве файла из которого происходит считывание используется обычный txt файл с такими данными:


09342598623 56,30 life
05085458748 23,10 mtc
09765874598 11,20 kyivstar
09345874122 89,65 life
09645874114 11,50 mtc
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include<iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
class Abonent
{
private:   
        char nomer[11];
        double ostatok;
        char tarif[15];
public:
        int load (Abonent *arr);
        int sortost (Abonent *t);
        int sorttar ( Abonent *arr);
        void get(void);
        ~Abonent (void);
 }arr [5];
 
int Abonent:: load (Abonent *arr)
{
    int i=0;
    FILE *f=NULL; 
    f=fopen("D:\Input.txt", "rt");
    if (f==NULL)
    {
        std::cout<< "No file!!!\n";
        exit (0);
    }
        
    for(i=0;i<5;i++)
    {
        fscanf(f,"%s", &arr[i].nomer);
        fscanf(f,"%lf", &arr[i].ostatok);
        fscanf(f,"%s", &arr[i].tarif);
    }
    fclose (f);
 
    return 0;
}
 
 int Abonent:: sortost (class Abonent *t)
 {
        class Abonent x;
        int i=0, j=0;   
        for(i=0;i<5;i++)
        {
                for(j=0; j<4; j++)
                {
                        if( t[j].ostatok > t[j+1].ostatok )
                        {
                                x=t[j];
                                t[j]=t[j+1];
                                t[j+1]=x;
                        }
                        
                }
        }
 
        return 0;       
 }
int Abonent:: sorttar (class Abonent *arr)
{
    int i=0, j=0;
    struct Abonent temp;
    for (i=0; i<5; i++)
    {
        for (j=0; j<4; j++)
        {
            if (strcmp(arr[j].tarif, arr [j+1].tarif) >= 0)
            {
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
 
    return 0;
}
 
void Abonent :: ~Abonent (void)
{
    int i=0;
    FILE *f=NULL;
    f=fopen ("D:\Result.txt", "wt");
    if (f==NULL)
    {
        std::cout<<"No file!!!\n";
        exit (0);
    }
   
    fprintf (f, "Spisok abonentov:\n\n");
    for(i=0;i<5;i++)
    {
        fprintf(f,"%s\t", arr[i].nomer);
        fprintf(f,"%lf\t", arr[i].ostatok);
        fprintf(f,"%s\t", arr[i].tarif);
        fprintf(f,"\n");
    }
    fclose (f);
 
}
 
void Abonent:: get(void)
{
    setlocale(LC_ALL, "Rus");
    int n=0, i=0;
    while(1)
    {
        std::cout<<"1.Загрузка данных\n2.Сортировка данных по остатку\n3.Сортировка данных по тарифу\n4.Выход (данные будут сохранены автоматически)\n\n";
        std::cout<<"Введите номер выбранного действия: ";
        std::cin>>n;
        std::cout<<std::endl;
 
        switch (n)
        {
            case 1 : load(arr);
                         break;
 
            case 2 : sortost (arr);
                             break;
 
            case 3 : sorttar (arr);
                             break;
 
            case 4 : exit (0);
                        break;
        }
        for (i=0;i<5;i++)
        std::cout<<arr[i].nomer<<'\t'<<arr[i].ostatok<<'\t'<<arr[i].tarif<<std::endl;
        std::cout<<std::endl;
        } 
}
 
void main (void)
{
    class Abonent Abonent_val;
    Abonent_val.get();
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.