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

Передача параметров в функцию по умолчанию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значение функции(исправить готовый код) http://www.cyberforum.ru/cpp-beginners/thread976230.html
Вычислить значение функции y=(x+5.2)\(x+1)(3x+4), на промежутке с шагом h=0.3. Результаты расчетов вывести в виде таблицы пар х и у. Если ищущих данных нет.то вывести про это сообщение.Вычислить суму первого и последнего значения функции. Есть код похожей задачи,но подставляя свои данные мне выдаёт ошибку и я не понимаю что еще мне нужно исправить...Помогите пожалуйста)Желательно вижуал студио...
C++ Операторы выбора. Даны 3 различных числа. Большее уменьшить на среднее, среднее заменить полуразностью двух других,меньшее увеличить втрое Даны 3 различных числа. Большее уменьшить на среднее, среднее заменить полуразностью двух других,меньшее увеличить втрое. помогите написать код,плиз http://www.cyberforum.ru/cpp-beginners/thread976226.html
C++ Пузырьковая сортировка
Здравствуйте .Объясните , пожалуйста , подробно , как работает пузырьковая сортировка . Получается сравниваются два соседних элемента и если элемент с меньшим индексом больше другого элемента , то они переставляются местами . Я немного запутался с циклами . Нашёл такой пример: const int arraysize = 10; int array = {7, 12, 100, 1, 78, 1234, 3, 18900, 512, 5021}; int hold; //выводим на...
статические поля класса C++
Попробовал следующий пример из книги: #include<iostream> #include <conio.h> using namespace std; class MyClass { public: static int counter; MyClass() {
C++ Ввести и вывести матрицу (for, while, do while) 2. Обработать массив по условию http://www.cyberforum.ru/cpp-beginners/thread976201.html
Нужно сделать программу в С++ 1. Ввести и вывести матрицу (for, while, do while) 2. Обработать массив по условию: Найти индекс последнего из ее столбцов, который содержит равное количество положительных и отрицательных элементов, если такого столбца нет вывести -1; Если в столбце одинаковое количество положительных и отрицательных элементов, обнулить элементы такого столбца Заранее...
C++ Вычислить значение функции Ребята подскажите пожалуйста похожие задачи,что б написать программу хотя бы по готовому шаблону..Буду очень благодарен. подробнее

Показать сообщение отдельно
Ytsukene
0 / 0 / 0
Регистрация: 30.01.2012
Сообщений: 42
13.10.2013, 14:39     Передача параметров в функцию по умолчанию
Здравствуйте! Вот в этом коде:

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
struct Book
    {
        string UDK;
        string autor;
        string name;
        int year;
        int amount;
        Book* next;
    };
 
void add (Book **beg, Book **end);
void add (char* str, Book **beg, Book **end);
void show(Book *beg, Book *end);
void search (Book *beg, Book **a=0, const int n=100);
 
 
int main()
{
    // 1) Определение и инициализация:
 
    setlocale(0,"rus");
 
    char answear;
    Book *beg = 0;
    Book *end = beg;
 
    
    
    // 2) Создание базы:
 
    cout<<"Загрузить данные из файла? (y/n)"<<endl;
    cin>>answear;
 
    switch (answear)
    {
        case 'y': 
            {
                ifstream fin("base.txt");
                if(!fin)
                {
                    cout<<"Файл не найден. Без обид, я просто его не вижу."<<endl;
                    return 0;
                }
                const int n = 80;
                char buf[n];
                while(!fin.eof())
                {
                    fin.getline(buf,sizeof(buf));
                    add(buf, &beg, &end);
                }
                break;
            }
        case 'n': break;
        default : cout<<"Неправильный ввод"<<endl;
    }
 
    // 3) Главное меню:
 
    cout<<"Добро пожаловать в библиотеку!"<<endl;
    while(true)
    {   
        system("cls");
        cout<<"Выберите ваши  действия:"<<endl;
        cout<<"-------------------------------------------------------"<<endl;
        cout<<"| 1) Найти книги                                      |"<<endl;
        cout<<"-------------------------------------------------------"<<endl;
        cout<<"| 2) Добавить новую книгу                             |"<<endl;
        cout<<"-------------------------------------------------------"<<endl;
        cout<<"| 3) Списать книгу                                    |"<<endl;
        cout<<"-------------------------------------------------------"<<endl;
        cout<<"| 4) Вывести список книг                              |"<<endl;
        cout<<"-------------------------------------------------------"<<endl;
        cout<<"| 5) Выйти                                            |"<<endl;
        cout<<"-------------------------------------------------------"<<endl;
        cin>>answear;
        switch(answear)
        {
            case '1': search(beg); break;
            case '2': add (&beg, &end); break;
            case '3': /*clear()*/; break;
            case '4': show(beg,end); break;
            case '5': return 0;
            default : cout<<"Неправильно"<<endl;
        }
    }
    system("pause");
    return 0;
 
}
 
.........
 
 
void search (Book *beg , Book **a=0, const int n=100)
{
    int i=0;
    string UDK;
    string autor;
    string name;
    int year;
    int amount;
 
    cout<<"Укажите ключи:"<<endl;
    cout<<"Введите УДК:.....";cin>>UDK;
    cout<<"Год издания:.....";cin>>year;
    cout<<"Автор:...........";getline(cin, autor);
    cout<<"Название книги:..";getline(cin, name);
 
    while(beg && i!=n)
    {
        if( UDK == beg->UDK ||
            year == beg->year ||
            autor == beg->autor ||
            name == beg->name )
        {
            a[i] = beg;
 
        }
 
        beg++;
        i++;
    }
 
    Book *buf;
    year=a[0]->year;
    for(i=0;a[i];i++)
    {
        for(int j=1;a[i];j++)
            if (a[i]->year < year)
            {
                buf=a[i];
                a[i]=a[j];
                a[j]=buf;
            }
    }
 
    for(i=0;a[i];i++)
    {
        cout<<endl<<"УДК:............."<<a[i]->UDK;
        cout<<endl<<"Год издания:....."<<a[i]->year;
        cout<<endl<<"Автор:..........."<<a[i]->autor;
        cout<<endl<<"Название книги:.."<<a[i]->name;
        cout<<endl<<"Количество:......"<<a[i]->amount;
        cout<<endl<<endl;
    }
 
    return;
}
компилятор выдаёт ошибку, будто параметры "a" и "n" функции search переопределены:

c:\users\ytsukene\documents\visual studio 2010\projects\lab_9\lab_9\main.cpp(238): error C2572: search: переопределение параметра по умолчанию: параметр 3
1> c:\users\ytsukene\documents\visual studio 2010\projects\lab_9\lab_9\main.cpp(19): см. объявление "search"
1>c:\users\ytsukene\documents\visual studio 2010\projects\lab_9\lab_9\main.cpp(238): error C2572: search: переопределение параметра по умолчанию: параметр 2
1> c:\users\ytsukene\documents\visual studio 2010\projects\lab_9\lab_9\main.cpp(19): см. объявление "search"

Попутно у меня вопрос, возможно ли, как это пытался сделать я, создать массив как параметр по умолчанию?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru