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

4 раза в памяти создается объект класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что выведет данная программа? http://www.cyberforum.ru/cpp-beginners/thread1107575.html
int main() { int a = 1, b = 2; int *p1 = &a; int *p2 = p1; p1 = &b; printf ( "%d %d",(*p1),(*p2) ); return 0; }
C++ Что находит данная программа? int main() { int i, res = 0, f ; for ( i = 0; i < 20; i++) scanf ( “%d”, &f ); for ( i = 1; i < 20; i++ ) if ( f > f ) res = i; printf ( “%d”, res ); return 0; http://www.cyberforum.ru/cpp-beginners/thread1107569.html
Ошибка в коде, поиск минимума из максимумов C++
Или подскажите в чем я ошибаюсь... Суть задачи: 1) задаем размерность матрицы, 2)задаем элементы матрицы, 3) выводим эту матрицу 4) и в каждом столбце ищем максимальный элемент, затем 6) среди этих максимальных элементов нужно найти минимальный... Допустим я задаю матрицу размера 3х3, алгоритм работает как должен, но при задании матрицы размером 2х3 поиск максимумов происходит только в первых...
Упростить код C++
#include <iostream> #include <iomanip> using namespace std; int main() { size_t rowsCount; cout << "N: "; cin >> rowsCount;
C++ Вывод строки по символам http://www.cyberforum.ru/cpp-beginners/thread1107554.html
Привет всем форумчанам! Пишу программу для шифрования текста кодом Цезаря. Столкнулся с такой проблемой: когда пытаюсь закодировать русский текст не получается сделать посимвольное считывание строки. С английскими символами все нормально. Подскажите, пожалуйста, в чем может быть проблема, уже много чего перепробовал. Пишу в CodeBlocks на Linux Mint 16 #include <iostream> #include <fstream>...
C++ Математическая задача Даны натуральные числа P,D,G. Число P в D-ичной. Получить G-ичное представление числа в виде такой последовательности a, a,...,a целые неотрицательных чисел, что a<G и P=a*G^k+a*G^(k-3)+ ....a. нужна помощь. С ++ не одолеть мне в этом случае... подробнее

Показать сообщение отдельно
Talkoflights
 Аватар для Talkoflights
25 / 25 / 5
Регистрация: 23.09.2012
Сообщений: 268
28.02.2014, 12:00     4 раза в памяти создается объект класса
Доброго времени суток!
Есть следующий код:
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
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class account
{
private:
    double balanse;
public:
    account();
    void credit(double);
    void debit(double);
    void setBalanse(double);
    double getBalanse();
    ~account();
};
account::account()
{   double bl;
    cout<<"Vvedite nachalnoe znachenie tekushego scheta."<<endl;
    cin>>bl;
    setBalanse(bl);
    if(balanse<0)
{
    balanse=0;
    cout<<"Nachalniy balans nedeystvitelen, prisvoenno znachenie 0 po umolchaniyu"<<endl;
}
}
void account::setBalanse( double bal)
{
    balanse=bal;
}
double account::getBalanse()
{
    cout.precision(2);
    cout<<balanse<<endl;
    return 0;
}
void account::credit(double ad)
{
if(ad<0)
{
    cout<<"Oshibka vvoda"<<endl;
    return;
}
else
balanse=balanse+ad;
}
void account::debit(double da)
{
    if(da<0)
{
    cout<<"Oshibka vvoda"<<endl;
    return;
}
    else
    {
    if(da>balanse) 
    {
    cout<<"Zaprashivaemae summa debeta slihkom velika"<<endl;
    }
    else
        balanse=balanse-da;
    }
}
account::~account()
{
cout<<"Zavershenie raboti"<<endl;
}
void vibor(account &p)
{
int c;
cout<<"Viberite deystvie:"<<endl;
cout<<"1-prosmotr tekushego scheta"<<endl;
cout<<"2-credit"<<endl;
cout<<"3-debit"<<endl;
cout<<"4-exit"<<endl;
cin>>c;
switch(c)
{
case 1:
    p.getBalanse();
    vibor(p);
    break;
case 2:
    double d;
    cout<<"Vvedite summu credita: ";
    cin>>d;
    cout<<endl;
    p.credit(d);
    vibor(p);
    break;
case 3:
    double dd;
    cout<<"Vvedigte summu debeta: ";
    cin>>dd;
    cout<<endl;
    p.debit(dd);
    vibor(p);
    break;
case 4:
    //delete(&p);
    system("exit");
    break;
default:
    cout<<"Oshibka vvoda!"<<endl;
    vibor(p);
    break;
}
}
void main()
{
account one;
vibor(one);
system("pause");
}
В функции vibor при обращении функции к самой себе в памяти создаются объекты класса, то есть при завершении программы деструктор вызывается 4 раза.
Как поправить функция для того, чтобы этого не происходило?
Заранее спасибо за ответы!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru