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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
#1

Использование классов - C++

06.11.2013, 19:24. Просмотров 480. Ответов 11
Метки нет (Все метки)

Не хочет запускаться, помогите найти ошибку
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
#include <iostream>
#define N 5
using namespace std;
class electronic_store 
{   
    char item[50];
    int price;
    int number;
    int section;
    
public:
    void define();              
    int get_price(){ return price;}
    int get_sec(){ return section;}
    class electronic_store *st_ob;       
    electronic_store();             
    ~electronic_store();                
    int section_sum(int sec);   
};
 
int main()
{
    electronic_store obj;
    for(int i=0; i<N; i++)
        obj.st_ob[i].define();
    cout<<"Input section needed ";
    int s;
    cin >> s;
    cout<<"The sum of needed section items is "<<obj.section_sum(s);
    cout<<endl;
    system("PAUSE");
    return 0;
};
 
void electronic_store::define()
{
        cout<<"Input an item: ";cin>>item;
        cout<<"Input a price: ";cin>>price;
        cout<<"Input an number: ";cin>>number;
        cout<<"Input a section: ";cin>>section;
        cout<<endl;
}
electronic_store::electronic_store()
{
    st_ob = new electronic_store[N];
}
int electronic_store::section_sum(int sec)
{
    int sum=0;
    for(int i=0; i<N; i++)
        if(st_ob[i].get_sec()==sec) sum+=st_ob[i].get_price();//
    return sum;
}
electronic_store::~electronic_store()
{
    delete [] st_ob;
}
P.S. Программа определяет класс для электронного склада (наименование , цена, количество товара, секция склада). Вводятся с клавиатуры данные о 5 позициях склада . Создается метод для подсчета суммы товаров заданной секции.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 19:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование классов (C++):

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Использование классов - C++
Расскажите пожалуйста на кокретных примерах как и где модно использовать классы?

Использование классов - C++
Разработать заголовочный файл, содержащий описание соответствующего класса, функции и операторы. Описание функций-членов класса разместить...

Использование классов - C++
Составить программу для объявления и использования данных типа класс согласно индивидуальному заданию, Базовый (транспортное средство) ...

Использование классов - C++
Класс Члены класса Методы Операторы перегрузки Исходные данные Матрица Размерность ...

Использование классов - C++
Здравствуйте господа программисты. Помогите мне пожалуста. В Курсовой есть такое задание: &quot;Создать телефонную книгу&quot; Программный проект...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 19:29 #2
wankstahamsta, а какие ошибки выдает?
и вот это "class electronic_store *st_ob;" как? Я что то пропустил?
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
06.11.2013, 19:32  [ТС] #3
в логе просто написано завершено с ошибками и все никаких комментариев ничего
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 19:36 #4
wankstahamsta, я вот честно, не понял, что это за строка "class electronic_store *st_ob;". Что она делает?
newbie666
Заблокирован
06.11.2013, 19:36 #5
C++
1
2
3
4
electronic_store::electronic_store()
{
    st_ob = new electronic_store[N];
}
надо убрать создание экземпляров самого себя из конструктора, у вас же тут дикая рекурсия, понимаете?
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
06.11.2013, 19:42  [ТС] #6
про рекурсию понял, как убрать не понял
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 19:46 #7
wankstahamsta, я бы на вашем месте сделал динамический список в классе. Так реально проще и надежнее
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
06.11.2013, 19:54  [ТС] #8
Дело в том, что программа не моя, а сам я не шарю.Думал что попроще будет исправить, а так я даже не понимаю, что вы предлагаете.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 19:58 #9
wankstahamsta,

Не по теме:

а автор программы он в курсе, что не запускается? Или вы потом сами меняли ее?

wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
06.11.2013, 20:00  [ТС] #10
вот изначальный рабочий код
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
#include <iostream>
#define N 5
using namespace std;
class store    
{                   
    char item[50];
    int price;
    int number;
    int section;
public:
    void define();              
    int get_price(){ return price;}
    int get_sec(){ return section;}
};
class electronic_store 
{               
public:
    class store *st_ob;      
    electronic_store();             
    ~electronic_store();                
    int section_sum(int sec);   
};
 
int main()
{
    electronic_store obj;
    for(int i=0; i<N; i++)
        obj.st_ob[i].define();
    cout<<"Input section needed ";
    int s;
    cin >> s;
    cout<<"The sum of needed section items is "<<obj.section_sum(s);
    cout<<endl;
    system("PAUSE");
    return 0;
};
 
void store::define()
{
        cout<<"Input an item: ";cin>>item;
        cout<<"Input a price: ";cin>>price;
        cout<<"Input an number: ";cin>>number;
        cout<<"Input a section: ";cin>>section;
        cout<<endl;
}
electronic_store::electronic_store()
{
    st_ob = new store[N];
}
int electronic_store::section_sum(int sec)
{
    int sum=0;
    for(int i=0; i<N; i++)
        if(st_ob[i].get_sec()==sec) sum+=st_ob[i].get_price();//
    return sum;
}
electronic_store::~electronic_store()
{
    delete [] st_ob;
}
но мне нужно чтобы класс был один
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
06.11.2013, 20:06 #11
wankstahamsta, ну вот у него примерно также и реализовано, как я предлагал. Если нужен строго 1 класс, сделайте вместо store структуру с полями char item[50]; int price; int number; int section;
wankstahamsta
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 45
06.11.2013, 20:18  [ТС] #12
ясно, спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 20:18
Привет! Вот еще темы с ответами:

Использование функциональных классов - C++
Помогите решить задачу: Создать список из строк длиной не более 100 символов. Из всех подряд идущих строк с одинаковым количеством...

Создание и использование классов - C++
Здравствуйте програмисты. Помогите пожалуйста. В лабораторке есть задание: Организовать класс треугольник, определенный по длинам трех...

Использование наследования классов - C++
День добрый, форум! Вот такой вопрос: Есть родительский класс A, у него 2 потомка, B и C. Внутри другого класса F я создаю объект...

Совместное использование классов - C++
Здравствуйте, возник такой вопрос, как следует писать код, чтобы 2 не зависимых класса могли использовать друг друга? Вот к примеру код ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.11.2013, 20:18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru