Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод в ANSI https://www.cyberforum.ru/ cpp-beginners/ thread1983735.html
Всем доброго времени суток! У меня следующая проблема: пишу парсер для языка html, на вход поступает файл с любым расширением (.html, .txt), дальше посимвольно разбирается с помощью лексического...
C++ Ввод данных используя цикл while (cin >> )
Здравствуйте, не могу разобрать, как работает одна из инструкций данной программы. Строка с циклом while ( inFile >> str1 ) В данном цикле inFile класса ifstream связан с объектом класса string,...
Ввод данных используя цикл while (cin >> ) C++
Здравствуйте, не могу разобрать, как работает одна из инструкций данной программы. Строка с циклом while ( inFile >> str1 ) В данном цикле inFile класса ifstream связан с объектом класса string,...
C++ Как передать функции элемент массива Здравствуйте, Нужно передать в функцию элемент массива. Как я прочитал, объявленное имя массива - указатель на первый элемент. Как будет правильнее, передавать указатель на элемент или ссылку?... https://www.cyberforum.ru/ cpp-beginners/ thread1983717.html
C++ Вычисление цепной дроби (рекурсивно и итеративно) https://www.cyberforum.ru/ cpp-beginners/ thread1983709.html
Как это вообще сделать ??? Нужно с помощь. рекурсии и без неё С++.
Указать путь к файлу и просканировать его содержимое C++
Всем привет!Учусь в Шаге,сразу говорю-это не домашнее задание,это мой комплексный проект.Нужно просканировать файл route1.map на наличие исполнительных файлов и записать найденное в отдельный...
C++ Графическая библиотека по типу модуля Graph в Паскале?
Здравствуйте, не по советуете какую то базовую графическую библиотеку типа модуля Graph в Паскале. То есть чтобы в два клика писать какие то элементарные вещи типа: нарисовать круг, линию, пиксель. ...
C++ Массивы. Перегрузка функции Задание такое: Из одномерного массива целых чисел, содержащего один нулевой элемент, вывести все числа, расположенные после нуля. Реализовать обработку массива с использованием функций. Далее... https://www.cyberforum.ru/ cpp-beginners/ thread1983679.html
C++ Поиск подстроки в строке https://www.cyberforum.ru/ cpp-beginners/ thread1983667.html
Здравствуйте, форумчане. Помогите справиться с заданием. Написать программу, реализующую поиск подстроки в строке. Строку, в которой выполняется поиск, и искомую подстроку пользователь вводит...
C++ Нормально ли бегать от книги к книге? Никак не могу освоить ООП. Начал с python с Доусона. Все хорошо, но дошел до ООП и началось туго. Потом в вузе начались основы С++, ну я и подумал, что я буду мучиться с python начну-ка С++. Взял... https://www.cyberforum.ru/ cpp-beginners/ thread1983658.html
0 / 0 / 0
Регистрация: 18.05.2017
Сообщений: 6
0

Классы и конструктор по умолчанию/с параметрами

18.05.2017, 04:24. Просмотров 1095. Ответов 7
Метки (Все метки)

Помогите пожалуйста!
Необходимо сконструировать класс с заданным набором свойств. В данном случае, касс содержит следующие поля: продукт, категория, количество, цена. Необходимо, чтобы вычислялась и полная стоимость (кол-во X цена).

При компиляции выходят ошибки. Ошибка 4996 ('strcpy') и ошибка связанная с тем, что у меня не получается вычислить полную стоимость.


Catalog.h

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
#pragma once
#ifndef Catalog_H
 
#include "stdafx.h"
#include <memory.h>
# include <iostream>
#include <string.h>
 
#define MAX_STRING_LEN 255
using namespace std;
 
class Catalog
{
protected:
    char* product;
    char* category;
    int price;
    int quantity;
 
public:
    void init();
    void show();
    void cost();
 
    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

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
#include "stdafx.h"
#include "catalog.h"
#include <string.h>
 
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)
{
    init();
    setProduct(_product);
    setCategory(_category);
    setPrice(_price);
    setQuantity(_quantity);
    printf("Constructor with params\n");
}
 
//setters
void Catalog::setProduct(char* _product)
{
    if (_product == NULL)
    {
        printf("_product == NULL");
        return;
    }
    strcpy(product, _product);
}
 
void Catalog::setCategory(char* _category)
{
    if (_category == NULL)
    {
        printf("_product == NULL");
        return;
    }
    strcpy(category, _category);
 
}
 
void Catalog::setPrice(int _price)
{
    if (_price == NULL)
    {
        printf("_price ==NULL");
        return;
    }
 
    price = _price;
}
 
void Catalog::setQuantity(int _quantity)
{
    if (_quantity == NULL)
    {
        printf("_price ==NULL");
        return;
    }
 
    quantity = _quantity;
}
 
//void function other*
 
//getters
char* Catalog::getProduct()
{
    return product;
}
 
char* Catalog::getCategory()
{
    return category;
}
 
int Catalog::getPrice()
{
    return price;
}
 
int Catalog::getQuantity()
{
    return quantity;
}
 
 
//implement show method
void Catalog::show()
{
    printf("product = %s | category = %s | price = %d | quantity = %d \n", getProduct(), getCategory(), getPrice(), getQuantity());
}

Catalog-main.cpp

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
// Catalog-main.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <memory.h>
#include <iostream>
#include <string>
#include "catalog.h"
 
void total_price(Catalog** catalogs, int size) {
    int i;
    int totalprice = 0;
    for (i = 0; i < size; i++) {
    totalprice = Price*Quantity;
    }
    catalogs[i]->show();
    cout << " /n Total prace for i - th product: " << totalprice << " / n";
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    //default constructor
    Catalog Catalog1;
    Catalog1.setProduct("Drink_H2O");
    Catalog1.setCategory("beverages");
 
    Catalog1.setPrice(1);
    Catalog1.setQuantity(19);
 
    Catalog1.show();
 
    //constructor with params
    Catalog Catalog2("Oil drill", "Industrial tools", 1000000, 1);
    Catalog2.show();
 
    int size;
    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: ";
    total_price(catalogs, size);
 
    system("pause");
}
Заранее, благодарю за помощь!

Вернуться к обсуждению:
Классы и конструктор по умолчанию/с параметрами
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2017, 04:24
Готовые ответы и решения:

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по...

Конструктор с параметрами по умолчанию
пытаюсь создать класс с параметрами по умолчанию(я да, надеюсь, что я не путаюсь в терминах) ...

Вызывается конструктор по умолчанию вместо конструктора с параметрами
Есть 2 конструктора: Cell::Cell() { strcpy(PhoneTouchScreen,&quot;Unknown&quot;); ...

Задача на классы, конструктор с параметром и по умолчанию
Скомпилировал, запустил. Добавляю новые элементы... и все. Программа прекращает свою работу, окно...

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