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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ VPTR http://www.cyberforum.ru/cpp-beginners/thread1003752.html
Как следует решать данную задачу?
C++ Ошибка error LNK2019: Не могу понять с чего выдает эту ошибку. Все правильно задано ! В чем дело никто не подскажет? index.obj : error LNK2019: ссылка на неразрешенный внешний символ "struct IntegerMap * __cdecl IntegerMapCreate(int)" (?IntegerMapCreate@@YAPAUIntegerMap@@H@Z) в функции _main 1>index.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl IntegerMapDestroy(struct IntegerMap *)"... http://www.cyberforum.ru/cpp-beginners/thread1003748.html
C++ Перегруженные функции. Создать под код программы
Вот под это нужно создать перегруженную функцию В одномерном массиве, состоящем из п элементов, вычислить: 1) произведение положительных элементов массива; 2) сумму элементов массива, расположенных до минимального элемента. // Лабораторная работа 1.3.2.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h"
Итератор C++
Добрый день. Я начинающий. Есть проект пытаюсь сделать построение-отладку выдает ошибку типа: Ошибка 1 error C2061: синтаксическая ошибка: идентификатор "_Int_iterator_tag" C:\BW191\src\lib\cstdmf\avector.hpp 373 Собственно сам код: template<class _Iter> void _Construct(_Iter _Count, _Iter _Val, _Int_iterator_tag) { // initialize with _Count * _Val
C++ Матрица. Перестановка строк http://www.cyberforum.ru/cpp-beginners/thread1003731.html
У матрицы до 100*100 в каждом столбце и каждой строке находится единственный нуль. Переставить строки матрицы таким образом, чтобы нули стояли на главной диагонали. Программа отказывается работать правильно, возможно она понимает, что я не труЪ программист. Помогите, пожалуйста. #include <iostream> #include <fstream> #include <time.h> #include <iomanip> using namespace std; void...
C++ Сцепить 2 динамических списка Во общем, нужно было создать 2 списка, в первом - удалить узлы с нулевыми значениями, во втором - со значением 1. Это я сделал. Последний пункт - это их сцепление. Помогите доделать задачу, сцепить нужно тоже в функции. #include "stdafx.h" #include "iostream" #include <fstream> #include <time.h> using namespace std; подробнее

Показать сообщение отдельно
saserlend
10 / 10 / 1
Регистрация: 25.11.2011
Сообщений: 137
10.11.2013, 19:56     Перегрузка функций
Есть функция 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru