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

Помогите пожалуйста преобразовать функцию в деструктор. (Полностью рабочая программа уже написана) - 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).Решить без юзания массивов. Задача из книги Дейтелов. Код я написал,ну вот насчёт логики и правильного стиля программирования я сомневаюсь,хотя всё работает норм.Помогите советом или кодом начинающему программисту:) #include "stdafx.h"...
C++ Не работает в release
Доброго времени суток, Столкнулся со следующей проблемой: При выполнении Debug Build - MFC программа работает корректно. Собираю Release build. Запускаю exe из папки Release. Окно запускается, все как надо, но программа не считает. Причем по скорости вывода ответа кажется, что она даже не проходит по алгоритму. Работаю в Visual Studio 2010. Может есть есть какие оптимизаторы кода, которые...
C++ Не работает программма "перевертыш" http://www.cyberforum.ru/cpp-beginners/thread446946.html
Всем доброго времени суток. Пока только учусь программированию на с++ и решил написать программу в которую вводиш например "приветмир" а она тебе выдает "римтевирп". Написал код, скомпилировал а она вместо "римтевирп" пишет "Иримтевир". Вот код #include <iostream> #include <stdlib.h> using namespace std; int main(int argc, char *argv) { char ch,pr;
C++ первый шаг он трудный самый! Как наверное понятно из заголовка, я решил изучить С++. Скачал книгу, компилятор Dev-C++. В книге написано создать свою первую программу, которая выглядит так: #include <iostream.h> void main(void) { cout << "Учимся программировать на языке C++!"; } Когда я запускаю чета происходит но ниче существенного и понятново)))) Если можете объясните по возможности доступно что я делаю не так и... подробнее

Показать сообщение отдельно
fors-dnet
 Аватар для fors-dnet
3 / 3 / 0
Регистрация: 11.12.2011
Сообщений: 88
16.02.2012, 00:21     Помогите пожалуйста преобразовать функцию в деструктор. (Полностью рабочая программа уже написана)
Заранее благодарен всем кто поможет.

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

Три еррора:
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");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru