Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какой язык выбрать C++ или C# https://www.cyberforum.ru/ cpp-beginners/ thread2492827.html
Использую для рисования свечных(финансовых) графиковhttps://code.msdn.microsoft.com/Windows-Forms-Samples-26bf2a53. Но, вот дилемма возникла. Нужно использовать машинное обучение, а с библиотеками в...
C++ тернарный оператор
объясните понятным языком что это такое в с++ и пояснение почему так //r=большее число из 2х значений #define maximum(x, y, r) int aa=x; int bb=y; r = ((aa) > (bb) ? (aa) : (bb))
C++ Разбор длинных текстовых файлов на составляющие https://www.cyberforum.ru/ cpp-beginners/ thread2492797.html
Суть проблемы: существует текстовый файл, состоящий из неопределённого количества символов. Программа по очереди считывает каждый символ, и в зависимости от того, какой символ она считала,...
C++ Некорректная работа регулярного выражения https://www.cyberforum.ru/ cpp-beginners/ thread2492779.html
Доброе время суток,у меня есть регулярное выражение std::wregex regular(L"+(+)*@+\.{2,4}"); по идее оно должно находить емеил в строке полностью, но почему-то regex_search реагирует даже если...
C++ Почему итераторы в STL используют такой странный подход к индексации?
Здравствуйте. Вопросы касаются пока только последовательных контейнеров. Почему при инициализации контейнера массивом из, например, 5 элементов, мы прибавляем к адресу массива во втором аргументе...
C++ Вызвано исключение: нарушение доступа для записи (visual studio 2017) https://www.cyberforum.ru/ cpp-beginners/ thread2492695.html
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { int a; cout << "How many names: "; cin >> a;
C++ Переполнение и тип данных https://www.cyberforum.ru/ cpp-beginners/ thread2492661.html
Есть задание, в котором надо перемножить 4 переменные (W, H, D, R), причем W, H, D <= 10^4, R <= 100. Переменную для результата объявил long long unsigned int, но ее не хватает для сохранения...
Квадратное уравнение С++ C++
Прошу показать пример квадратного уравнения на языке C++. При написании использовать структуру с использованием адресов и ссылок на переменные.
C++ Не срабатывает логическое суммирование для char значений Всем привет. Не могу понять из-за чего не срабатывает логическое суммирование для массива char (1 байт), в отличие от массива short (2 байта). Имеется код: #include <iostream> using namespace... https://www.cyberforum.ru/ cpp-beginners/ thread2492616.html C++ Создать файл с € в названии https://www.cyberforum.ru/ cpp-beginners/ thread2492581.html
Из файла парсятся некоторые данные, которые сохраняются в переменные. В частности, в переменную стринг сохраняется строчка "€125 название". В дальнейшем создаётся новый файл, в котором сохраняются...
MFC и двоичные файлы C++
У меня есть двоичный файл. Мне необходимо считать его в приложение и вывести в виде простыни текста в приложении SDI в окно документа. Вот сюда. Я не совсем понимаю, как можно, вообще, это...
C++ Поэлементно просуммировать два динамических двумерных массива https://www.cyberforum.ru/ cpp-beginners/ thread2492567.html
Здравствуйте, у меня такое задание: Написать программу, которая поэлементно суммирует два динамических двумерных массива, заполненных случайными числами и сохраняет результат в третьем массиве....
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 200
0

ошибка нет подходящего конструктора по умолчанию, но мне на самом деле нужна пустая переменная - C++ - Ответ 13782101

21.08.2019, 04:52. Показов 422. Ответов 4
Метки (Все метки)

Проблема в main.cpp строка 15, мне нужна пустая переменная. До того как я добавил строки 25-27 из Library.h все работало. Но после того как я сделал Transaction.h, а конкретно в Transaction.cpp строка 8 думаю именно тогда все пошло по п.... Собственно что делать чтобы она работала?

Весь проект
https://drive.google.com/file/... sp=sharing

Эта программа находится уже на грани моего понимания ее работы, я чувствую что еще немного и я перестану понимать что я делаю.

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
//файл main.cpp
//Программа для учета выданных и доступных книг в библиотеке
 
#include <Header.h>
#include <Book.h>
#include <Patron.h>
#include <Library.h>
#include <Transaction.h>
 
void menu()
{   
    try
    {
        Transaction tr_lib;
        Library lib;
        while (cin) {
            cout << "Введите код требуемой операции: \n" << "1 - выдача книги пользователю" << endl
                << "2 - ввод нового пользователя" << endl << "3 - ввод новой книги" << endl
                << "4 - просмотр всех книг" << endl << "5 - просморт всех пользователей" << endl
                << "6 - просмотр пользователей которым были выданы книги" << endl;
            char ch;
            cin >> ch;
            switch (ch)
            {
            case('1'):
                tr_lib.give_out_book(lib);
                break;
            case('2'):
            {
                Patron p;
                p.enter();
                lib.new_patron(p);
                break;
            }
            case('3'):
            {
                Book b;
                b.enter();
                lib.new_book(b);
                break;
            }
            case('4'):
                lib.book_scroll();
                break;
            case('5'):
                lib.pat_scroll();
                break;
            case('6'):
                tr_lib.print_t_lib();
                break;
            default:
                break;
            }
        }
    }
    catch (exception& e) {
        cerr << "exception: " << e.what() << endl;
        keep_window_open();
        return;
    }
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    menu();
    return 0;
}
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
//файл Library.h
#pragma once
#include <Header.h>
#include <Book.h>
#include <Patron.h>
#include <Date.h>
 
class Library
{
public:
    void new_patron(const Patron& p);
    void new_book(const Book& b);
    //пользователи
    string pat_name(int i) const { return patrons[i].name(); }      //возвращает имя пользователя
    int pat_lib_code(int i) const { return patrons[i].lib_code(); }     //библиотечный код пользователя
    bool pat_price_pay(int i) const { return patrons[i].price_pay(); }      //проверка отплаты пользователем
    Patron patron(int i) const { return patrons[i]; }       //все данные о пользователе из библиотеки
    int size_patrons() const { return patrons.size(); }     //размер вектора patrons
    //книги
    bool book_in_stock(int i) const { return books[i].in_stock(); }     //наличие книги в библиотеке
    string book_ISBN(int i) const { return books[i].ISBN(); }       //код ISBN книги
    void book_change_in_stock(int i) { books[i].change_in_stock(); return; }        //изменение наличия книги
    Book book(int i) const { return books[i]; }     //все данные о книге из библиотеке
    int size_books() const { return books.size(); }     //размер вектора books
    Library(Book b, Patron p);
    Library(Patron p);
    Library(Book b);
    void pat_scroll() const;        //печатает всех пользователей
    void book_scroll() const;       //печатает все книги
private:
    vector<Book> books;
    vector<Patron> patrons;
};
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
//файл Library.cpp
#include "Library.h"
 
vector<Book> books;
vector<Patron> patrons;
 
Library::Library(Book b, Patron p)
{
    books.push_back(b);
    patrons.push_back(p);
    return;
}
 
Library::Library(Patron p)
{
    patrons.push_back(p);
    return;
}
 
Library::Library(Book b)
{
    books.push_back(b);
    return;
}
 
void Library::new_patron(const Patron& p)
{
    for (int i = 0; i < patrons.size(); ++i)
    {
        if (p.lib_code() == patrons[i].lib_code())
            error("Пользователь уже существует.");
    }
    patrons.push_back(p);
    return;
}
 
void Library::new_book(const Book& b)
{
    for (int i = 0; i < books.size(); ++i)
    {
        if (b.ISBN() == books[i].ISBN())
            error("Книга уже существует");
    }
    books.push_back(b);
    return;
}
 
void Library::pat_scroll() const
{
    for (int i = 0; i < patrons.size(); ++i)
        cout << endl << "Пользователь: " << patrons[i].name() << endl << 
        "Библиотечный код: " <<patrons[i].lib_code()
        << endl << check_pay(patrons[i]) << endl << endl;
}
 
void Library::book_scroll() const
{
    for (int i = 0; i < books.size(); ++i)
        cout << endl << "Название: " << books[i].name() << endl << 
        "Автор: " << books[i].author()
        << endl << books[i].ISBN() << endl << books[i].genre()
        << endl << check_book(books[i]) << endl << endl;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//файл Transaction.h
#pragma once
#include <Library.h>
 
struct Transaction
{
    void give_out_book(Library& lib);
    int t_lib_code(int i) const { return t_lib[i].pat_lib_code(0); }        //возвращает библиотечный код пользователя
    bool t_price_pay(int i) const { return t_lib[i].pat_price_pay(0); }     //возвращает подтверждение отплаты пользователя
    string t_pat_name(int i) const { return t_lib[i].pat_name(0); }     //возвращает имя пользователя
    void add_patron(const Patron& p);       //добавляет нового пользователя в t_lib
    void add_book(int t_lib_i, int book_i, Library& lib);       //добавляет новую книгу в t_lib
    void print_t_lib();     //печатает t_lib
private:
    vector<Library> t_lib;
};
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
//файл Transaction.cpp
#include "Transaction.h"
 
vector<Library> t_lib;
 
void Transaction::add_patron(const Patron& p)       //добавить нового пользователя в t_lib
{
    t_lib.push_back(Library(p));
    return;
}
 
void Transaction::add_book(int t_lib_i, int book_i, Library& lib)       //добавить новую книгу в t_lib
{
    if (lib.book_in_stock(book_i) == false)
        error("Книга выдана на руки");
    t_lib[t_lib_i].new_book(lib.book(book_i));      //добавляем книгу 
    lib.book_change_in_stock(book_i);       //изменяем наличие книги
    return;
}
 
void Transaction::give_out_book(Library& lib)
{
    cout << "Введите библиотечный код пользователя\n";
    int code, num_patron = -1, num_ISBN = -1;
    string ISBN;
    cin >> code;
    if (code < 0 || code > 100000)
        error("Введенный библиотечный код вне возможного диапозона значений.");
    cout << "Введите код ISBN книги\n";
    cin >> ISBN;
    for (int i = 0; i < lib.size_patrons(); ++i)        //ищем пользователя в библиотеке
        if (code == lib.pat_lib_code(i))
            num_patron = i;
    if (num_patron == -1)
        error("Пользователь не найден");
    for (int i = 0; i < lib.size_books(); ++i)      //ищем книгу в библиотеке
        if (ISBN == lib.book_ISBN(i))
            num_ISBN = i;
    if (num_ISBN == -1)
        error("Книга не найдена");
    if (t_lib.size() == 0)      //присвоить первого пользователя если вектор пуст
        add_patron(lib.patron(num_patron));
    int t_lib_patron = -1;
    for (int i = 0; i < t_lib.size(); ++i)      //ищем пользователя в t_lib
        if (code == t_lib_code(i))
            t_lib_patron = i;
    if (t_lib_patron == -1)     //создаем нового пользователя в t_lib если он не найден
        add_patron(lib.patron(num_patron));
    add_book(t_lib.size() - 1, num_ISBN, lib);      //добавляем книгу в t_lib
    return;
}
 
void Transaction::print_t_lib()
{
    for (int i = 0; i < t_lib.size(); ++i)
    {
        t_lib[i].pat_scroll();
        cout << "Книги выданные пользователю:\n";
        t_lib[i].book_scroll();
    }
    return;
}


Вернуться к обсуждению:
ошибка нет подходящего конструктора по умолчанию, но мне на самом деле нужна пустая переменная C++
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2019, 04:52
Готовые ответы и решения:

Ошибка: нет подходящего конструктора по умолчанию
В общем ребят, такая проблема, решил начать обучение плюсов по книжке, там задание создать класс и...

Нет подходящего конструктора по умолчанию
Всем привет :) Есть вот такой код#include &lt;vector&gt; #include &lt;SFML/Graphics.hpp&gt; using namespace...

Нет подходящего конструктора по умолчанию
написал вот такой код // ConsoleApplication29.cpp: определяет точку входа для консольного...

Нет подходящего конструктора по умолчанию
#ifndef ANIMATION_H #define ANIMATION_H #include &lt;SFML\Graphics.hpp&gt; class animation {...

4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2019, 04:52

Нет подходящего конструктора по умолчанию. Наследование
Скидываю хидер и исходник к нему: хидер(Main_Menu.h): #include &quot;stdafx.h&quot; #ifndef...

Нет подходящего конструктора vector по умолчанию
Не понимаю, как описать #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;vector&gt; using...

C2512: odejda: нет подходящего конструктора по умолчанию
Пытаюсь разобраться с полиморфизмом. Помогите пожалуйтста. #include &lt;string&gt; #include...

Создание лог файла. Нет подходящего конструктора по умолчанию
Добрый день, почему вылетает ошибка не пойму. Ошибка: нет подходящего конструктора по умолчанию. И...

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