5 / 5 / 6
Регистрация: 04.12.2011
Сообщений: 179
1

Ошибка при добавление экземпляра класса

26.05.2014, 20:52. Показов 471. Ответов 7
Метки нет (Все метки)

Добавляю один товар, все хорошо. При повторном добавлении название и вид предыдущих товаров заменяется на данные вновь добавленного товара.
Думаю, проблема из за массива строк.

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
class tovar
{
public:
     char* name;
     char* type;
     int price;
     int count;
    tovar(char aname[],char atype[],int aprice, int acount);
    tovar();
    ~tovar(void);
};
tovar::tovar(char aname[],char atype[],int aprice, int acount)
{
    name=aname;
    price=aprice;
    type=atype;
    count=acount;
}
 
#include "tovar.h"
class listTovars
{
public:
    
    listTovars();
    ~listTovars(void);
    int count;
    tovar list[30];//массив товаров
    void Add(char aname[],char atype[],int aprice, int acount);//добавление
    void ShowAll();//вывод всех товаров
 
    
};
 
 
listTovars::listTovars(void)
{
    count=0;
}
void listTovars::Add(char aname[],char atype[],int aprice, int acount)
{
    tovar a(aname,atype,aprice,acount);
    list[count] =a;
    count++;
 
}
void listTovars::ShowAll()
{
    setlocale(0,"");
    cout<<"Информация о товарах:"<<endl;
    for (int i=0;i<count;i++)
    {
        cout<<"Наименование: "<<list[i].name<<" Вид товара: "<<list[i].type<<" Цена: "<<list[i].price<<" Количество: "<<list[i].count<<endl;
    }
}
 
char bname[20];
                char btype[20];
                int bprice;
                int bcount;
                cout<<"Введите необходимые данные: "<<endl;
                cout<<"Название: ";         cin>>bname;
                cout<<"Вид: ";               cin>>btype;
                cout<<"Цена: ";             cin>>bprice;
                cout<<"Количество: ";     cin>>bcount;
                l.Add(bname,btype,bprice,bcount);
                break;
Добавлено через 24 секунды
Здесь представлены кусочки программы
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2014, 20:52
Ответы с готовыми решениями:

Удаление экземпляра класса в функции самого класса (Ошибка при отладке)
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и...

Ошибка при создании экземпляра класса
На скринах показано, где ошибка Вот код: #include &lt;iostream&gt; #include &lt;string&gt; #include...

Ошибка при присваивании значения экземпляра класса
#include &lt;iostream&gt; using namespace std; // Класс с динамическим массивом: class MyClass {...

Ошибка при добавлении экземпляра класса в поток
Добрый день, возникла ошибка при добавлении екземпляра класса в поток, не могу разобраться,...

7
502 bad gateway
Эксперт PHP
4608 / 3748 / 1565
Регистрация: 24.04.2014
Сообщений: 10,984
26.05.2014, 21:05 2
Цитата Сообщение от ГузелькаС Посмотреть сообщение
C++
1
2
3
4
5
6
7
tovar::tovar(char aname[],char atype[],int aprice, int acount)
{
* * name=aname;
* * price=aprice;
* * type=atype;
* * count=acount;
}
Если использовать строки в стиле C, то тогда уж так.
C++
1
2
3
4
name = new char[strlen(aname)+1];
strcpy(name, aname);
// И в деструкторе освободить память
delete[] name;
А вообще лучше воспользоваться std::string
1
5 / 5 / 6
Регистрация: 04.12.2011
Сообщений: 179
26.05.2014, 21:12  [ТС] 3
Вот такую ошибочку мне выдает:

error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
0
502 bad gateway
Эксперт PHP
4608 / 3748 / 1565
Регистрация: 24.04.2014
Сообщений: 10,984
26.05.2014, 21:30 4
ГузелькаС, или используй strcpy_s, либо добавь #define _CRT_SECURE_NO_WARNINGS перед подключением string.h
0
5 / 5 / 6
Регистрация: 04.12.2011
Сообщений: 179
26.05.2014, 21:40  [ТС] 5
Ошибка при добавление экземпляра класса


что я не так делаю?
0
502 bad gateway
Эксперт PHP
4608 / 3748 / 1565
Регистрация: 24.04.2014
Сообщений: 10,984
26.05.2014, 21:58 6
ГузелькаС, попробуй в свойствах проекта C/C++ -> general -> warning level -> turn of all warnings
0
:)
Эксперт С++
4769 / 3263 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.05.2014, 22:02 7
Цитата Сообщение от ГузелькаС Посмотреть сообщение
что я не так делаю?
Это студия не так делает, а не Вы. Нужно добавить в самое начало кода:
C++
1
#define _CRT_SECURE_NO_WARNINGS
0
5 / 5 / 6
Регистрация: 04.12.2011
Сообщений: 179
26.05.2014, 22:14  [ТС] 8
Ошибка при добавление экземпляра класса

не получается
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2014, 22:14

При создании экземпляра класса, создается 2 экземпляра вместо 1
Подсчет экземпляров ведется с помощью статического члена num_dogs, который во всех трех...

Ошибка создания экземпляра класса
Собственно ошибка в мейне error C2227: left of '-&gt;AddLast' must point to class/struct/union/generic...

Ошибка в создании экземпляра класса
Начал изучать шаблоны , и не могу переделать , подскажите что не так . template &lt;class data_one&gt;...

Создание нового экземпляра дочернего класса из экземпляра базового
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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