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

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

Войти
Регистрация
Восстановить пароль
 
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
#1

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

26.05.2014, 20:52. Просмотров 237. Ответов 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 секунды
Здесь представлены кусочки программы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2014, 20:52     Ошибка при добавление экземпляра класса
Посмотрите здесь:

C++ Сложение экземпляра базового класса и экземпляра наследника
Ошибка создания экземпляра класса C++
Создание экземпляра класса C++
C++ Добавление экземпляра структуры в конец коллекции
C++ Запись экземпляра класса в файл
C++ Создание нового экземпляра дочернего класса из экземпляра базового
Создать массив экземпляра класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jewbacabra
1959 / 1623 / 590
Регистрация: 24.04.2014
Сообщений: 4,615
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
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
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.
Jewbacabra
1959 / 1623 / 590
Регистрация: 24.04.2014
Сообщений: 4,615
26.05.2014, 21:30     Ошибка при добавление экземпляра класса #4
ГузелькаС, или используй strcpy_s, либо добавь #define _CRT_SECURE_NO_WARNINGS перед подключением string.h
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
26.05.2014, 21:40  [ТС]     Ошибка при добавление экземпляра класса #5
Ошибка при добавление экземпляра класса

что я не так делаю?
Jewbacabra
1959 / 1623 / 590
Регистрация: 24.04.2014
Сообщений: 4,615
26.05.2014, 21:58     Ошибка при добавление экземпляра класса #6
ГузелькаС, попробуй в свойствах проекта C/C++ -> general -> warning level -> turn of all warnings
Tulosba
:)
Эксперт С++
4383 / 3226 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.05.2014, 22:02     Ошибка при добавление экземпляра класса #7
Цитата Сообщение от ГузелькаС Посмотреть сообщение
что я не так делаю?
Это студия не так делает, а не Вы. Нужно добавить в самое начало кода:
C++
1
#define _CRT_SECURE_NO_WARNINGS
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 22:14     Ошибка при добавление экземпляра класса
Еще ссылки по теме:

C++ Видимость экземпляра класса внутри класса
C++ При создании экземпляра класса, создается 2 экземпляра вместо 1
C++ Создать экземпляр класса по ссылке экземпляра класса
Ошибка в создании экземпляра класса C++
C++ Размер массива при создании экземпляра класса

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

Или воспользуйтесь поиском по форуму:
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
26.05.2014, 22:14  [ТС]     Ошибка при добавление экземпляра класса #8
Ошибка при добавление экземпляра класса
не получается
Yandex
Объявления
26.05.2014, 22:14     Ошибка при добавление экземпляра класса
Ответ Создать тему
Опции темы

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