Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
1

Перегрузка функций

10.11.2013, 19:56. Показов 832. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть функция Message которую я пытаюсь перегрузить. Вроде все правильно, но не работает . Помогите разобраться. Ошибка на 44 и 45 строчку.
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
#include <time.h>
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
 
class mass_bool
{
private:    const int iLenght, iWidth, iHeight; 
            int ***pppLink;
            bool bCounter;
 
public:     mass_bool(): iLenght(0), iWidth(0), iHeight(0){}
            mass_bool(int,int,int);
            mass_bool(const mass_bool &Z);
            ~mass_bool();
 
            void ShowArray();
            void FillArray();
            void Sort();
            friend void Message();
};
 
mass_bool TransitRef( const mass_bool& ); //Транзитные функции
mass_bool TransitPtr( const mass_bool* );
mass_bool TransitVal( mass_bool ) ;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    srand( ( unsigned ) time ( NULL ) );
 
    const int *i = new int ( rand () % 8 + 2 );
    const int *j = new int ( rand () % 8 + 2 );
    const int *k = new int ( rand () % 8 + 2 );
 
    const int iLe = *i;
    const int iWi = *j;
    const int iHi = *k;
    
    mass_bool arr ( iLe, iWi, iHi );
 
    Message();
    Message( "Массив задается автоматически\n" );
    Message( "Размерность " , "массива - " );
    cout << "[" << iLe << "] [" << iWi << "] [" << iHi << "]" << endl;
 
    arr.FillArray();
    arr.ShowArray();
    arr.Sort();
    arr.ShowArray();
    
    cout << endl;
    system ( "pause" );
    return 0;
}
 
mass_bool::mass_bool(int nD1,int nD2,int nD3):iLenght(nD1),iWidth(nD2),iHeight(nD3),pppLink(0)//Конструктор
{ 
    pppLink = new int**[iLenght]; //Создание указателей на указатели на Int
 
    for(int i=0; i < iLenght; i++) //Создание массива указателей на Int
    {
        
        pppLink[i] = new int*[iWidth];
    } 
 
    for(int i=0; i < iLenght; i++) //Создание массива int
    {
        for(int j=0; j < iWidth; j++)
        {
            pppLink[i][j] = new int[iHeight];
        }
    }
 
cout << "Сработал конструктор\n";
getch();
}
 
mass_bool::mass_bool(const mass_bool& Z):iLenght(Z.iLenght),iWidth(Z.iWidth),iHeight(Z.iHeight)//Копирующий конструктор
{
    pppLink = new int**[iLenght]; //Создание указателей на указатели на Int
 
    for(int i=0; i < iLenght; i++) //Создание массива указателей на Int
    {
        pppLink[i] = new int*[iWidth];
    } 
 
    for(int i=0; i < iLenght; i++) //Создание массива int
    {
        for(int j=0; j < iWidth; j++)
        {
            pppLink[i][j] = new int[iHeight];
        }
    }
 
    for(int i=0; i < iLenght; i++) 
    {
        for(int j=0; j < iWidth; j++)
        {
            for(int k=0; k < iHeight; k++)
            {
                pppLink[i][j][k] = Z.pppLink[i][j][k];
            }
        }
    }
 
cout << "Сработал конструктор копирования\n";
getch();
}
 
mass_bool::~mass_bool() //Деструктор
{
    for(int i=0; i < iLenght; i++) //Удаление массивов указателей на INT
    {
        for(int j=0; j < iWidth; j++)
        {
            delete []pppLink[i][j];
        }
    }
 
    for(int i=0; i < iLenght; i++) //Удаление массивов указателей на указатели на INT
    {
        delete []pppLink[i];
    }
 
    if(iLenght != 0)        //Удаление простого массива
    {
        delete []pppLink;
    }
 
cout << "Сработал деструктор\n";
getch();
}
 
void mass_bool::ShowArray() //Просмотр элементов массива.
{
    cout << endl;
    for(int i=0; i < iWidth; i++) 
    {
        for(int j=0; j < iLenght; j++)
        {
            for(int k=0; k < iHeight; k++)
            {
                cout << pppLink[j][i][k]; 
            }
        cout << "\t";
        }
    cout << endl;
    }
}
 
void mass_bool::FillArray() // Заполнение массива
{
    srand ( time ( NULL ) );
    for(int i=0; i < iLenght; i++)
    {
        for(int j=0; j < iWidth; j++)
        {
            for(int k=0; k < iHeight; k++)
            { 
                pppLink [i][j][k] = static_cast < bool > ( rand ( ) % 2 );
                
            } 
        }
    }
}
 
void mass_bool::Sort() //Сортировка.
{
    for(int i=0; i < iLenght; i++)
    {
        for(int j=0; j < iWidth; j++)
        {
            for(int k=0; k < iHeight; k++)
            {
                for(int ch=0; ch < iHeight-1; ch++)
                {
                    if( pppLink [i][j][k] < pppLink [i][j][ch] )
                    {
                        bCounter = pppLink [i][j][k];
                        pppLink [i][j][k] = pppLink [i][j][ch];
                        pppLink [i][j][ch] = bCounter;
                    }
                }
            }
        }
    }
}
 
void Message()
{ 
    cout << "Класс обработки трехмерного булевского массива\n\n"; 
}
 
void Message( char *message_1 )
{ 
    cout << message_1 << endl; 
}
 
void Message( char *message_2, char *message_3 )
{ 
    cout << message_2; 
    cout << message_3 << endl; 
}
 
mass_bool TransitRef(const mass_bool &s)
{
    cout << "Number 1\n" << endl;
    return s;
}
 
mass_bool TransitPtr(const mass_bool *s)
{
    cout << "Number 2\n" << endl;
    return *s;
}
 
mass_bool TransitVal(mass_bool s)
{
    cout << "Number 3\n" << endl;
    return s;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2013, 19:56
Ответы с готовыми решениями:

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг...

Перегрузка функций. Реализация функций
Разработать функцию f(x) , которая возвращает младшую цифру натурального числа x . Вычислить с ее...

Перегрузка функций с++
Задача состоит в том, чтобы написать перегуженную функцию и то, что будет её вывзывать в...

перегрузка функций
Создайте класс Date, который будет содержать информацию о дате (день, месяц, год). С помощью...

6
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
10.11.2013, 20:17 2
Определения функций перед мейном сделайте
0
 Аватар для lemegeton
4866 / 2664 / 914
Регистрация: 29.11.2010
Сообщений: 5,747
10.11.2013, 20:19 3
Попробуйте вместо
C++
1
2
3
4
5
6
7
8
9
10
void Message( char *message_1 )
{ 
    cout << message_1 << endl; 
}
 
void Message( char *message_2, char *message_3 )
{ 
    cout << message_2; 
    cout << message_3 << endl; 
}
написать
C++
1
2
3
4
5
6
7
8
9
10
void Message( const char *message_1 )
{ 
    cout << message_1 << endl; 
}
 
void Message( const char *message_2, const char *message_3 )
{ 
    cout << message_2; 
    cout << message_3 << endl; 
}
0
11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
10.11.2013, 20:22  [ТС] 4
Цитата Сообщение от scenotaph Посмотреть сообщение
Определения функций перед мейном сделайте
Понятно, но разве перегрузка функции будет? Здесь, же получается просто вызов одной функции с разными параметрами. Или я ошибаюсь?
0
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
10.11.2013, 20:26 5
saserlend, Почему нет? Перегрузка это и есть определение функций с одинаковым именем но разными параметрами. Под разными подразумевается их тип, количество
1
11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
10.11.2013, 20:26  [ТС] 6
Цитата Сообщение от lemegeton Посмотреть сообщение
error C2660: Message: функция не принимает 1 аргументов
error C2660: Message: функция не принимает 2 аргументов

Все равно ошибки.
0
 Аватар для Сонца
23 / 23 / 10
Регистрация: 20.06.2013
Сообщений: 83
10.11.2013, 22:07 7
saserlend,
вынесите прототипы перегруженных функций до функции main (){}
C++
1
2
3
4
5
6
void Message( char *message_1 );
void Message( char *message_2, char *message_3 );
int main()
{
//...
}
И все заработает.
1
10.11.2013, 22:07
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2013, 22:07
Помогаю со студенческими работами здесь

Перегрузка функций
Задача такая: перегрузить * так чтобы время умножалось на число, и так чтобы число умножалось на...

Перегрузка функций
Прошу помогите, очень нужно, до 24.02, если не сдам, то отчислят!(((( Программка на перегрузку...

Перегрузка функций
Определить функцию, возвращающую расстояние между точками числа. Выполнить перегрузку функции для...

Перегрузка функций
Задача: создать объект формирующий HTML теги. Теги бывают двух типов - полные &lt;p...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru