Класс. Конструктор с параметром и без. - вопрос №2460239
Необходимо создать программу, где выводились бы две таблицы (констр. с параметром и без соответственно) с данными наименование продукта, категория, стоимость, количество. Причем сначала должна выводиться таблица без подсчета общей стоимости каждого товара за n-ное количество. Подскажите, как сделать так, чтобы программа работала, чтобы высчитывалась сумма (кол-ва * цена за шт.). Вот, что пока получилось и ошибки, что выходят. Не могу понять, как посчитать стоимость продукта за n штук.
Листинг Catalog.h
#pragma once
#ifndef Catalog_H
#include «stdafx.h»
#include
# include
#include
#define MAX_STRING_LEN 255
using namespace std;
class Catalog
{
protected:
char* product;
char* category;
int price;
int quantity;
int totalprice;
public:
void init();
void show();
void setProduct(char * _product);
void setCategory(char * _category);
void setPrice(int _price);
void setQuantity(int _quantity);
char * getProduct();
char * getCategory();
int getPrice();
int getQuantity();
Catalog();
Catalog(char * _product, char * _category, int _price, int _quantity);
};
#endif
ЛистингCatalog.cpp
#include «stdafx.h»
#include «catalog.h»
#include
void Catalog::init()
{
product = new char[MAX_STRING_LEN];
memset(product, 0, MAX_STRING_LEN);
category = new char[MAX_STRING_LEN];
memset(category, 0, MAX_STRING_LEN);
price = 0;
quantity = 0;
}
Catalog::Catalog()
{
init();
cout << «Constructor with default params\n» << endl;
}
Catalog::Catalog(char* _product, char* _category, int _price, int _quantity)
cout << «Please enter the dimension of the array: »;
cin >> size;
Catalog** catalogs = new Catalog*[size];
char *product = new char[MAX_STRING_LEN];
memset(product, 0, MAX_STRING_LEN);
char *category = new char[MAX_STRING_LEN];
memset(category, 0, MAX_STRING_LEN);
int price = 0;
int quantity = 0;
for (int i = 0; i < size; i++)
{
catalogs[i] = new Catalog();
cout << «Please enter product name: »;
cin >> product;
catalogs[i]->setProduct(product);
cout << «Please enter category: »;
cin >> category;
catalogs[i]->setCategory(category);
cout << «Please enter price: »;
cin >> price;
catalogs[i]->setQuantity(quantity);
cout << «Please enter quantity: »;
cin >> quantity;
cout << "*****************************\n";
}
for (int i = 0; i < size; i++)
catalogs[i]->show();
cout << "\n List and total price: ";
system(«pause»);
}
Ошибки:
Вывод ошибок:
1>------ Сборка начата: проект: Catalog, Конфигурация: Debug Win32 ------ 1> Catalog.cpp 1>c:\users\ekaterina\documents\visual studio 2015\projects\catalog\catalog\catalog\catalog.cpp(40): 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. 1> c:\program files\windows kits\10\include\10.0.10240.0\ucrt\string.h(119): note: см. объявление «strcpy» 1>c:\users\ekaterina\documents\visual studio 2015\projects\catalog\catalog\catalog\catalog.cpp(50): 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. 1> c:\program files\windows kits\10\include\10.0.10240.0\ucrt\string.h(119): note: см. объявление «strcpy» ========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Здравствуйте. Вы используете небезопасную версию функции strcpy, которая в таком виде признана устаревшей. Используйте или безопасный вариант (strcpy_s), или поставьте при компиляции define __CRT_SECURE_NO_WARNINGS
Как соберете программу дальше уже можно смотреть.
Если нужна помощь по коду — пишите в чат, но услуга платная.
Добрый день. Меня заинтересовал ваш ответ "Здравствуйте. Вы используете небезопасную версию функции strcpy, которая в таком виде признана устар..." на вопрос http://www.liveexpert.org/topic/view/2460239-klass-konstruktor-s-parametrom-i-bez. Можно с вами обсудить этот ответ?