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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск ключа в бинарном дереве поиска http://www.cyberforum.ru/cpp-beginners/thread766613.html
Здравствуйте! Помогите ещё с задачками) 1.Поиск ключа в бинарном дереве поиска (точное соответствие). 2. Поиск ключа в бинарном дереве поиска (меньше или равно). 3. Поиск ключа в бинарном дереве поиска (строго меньше). Если возможно - с кодом
C++ Параллельное программирование: нахождение интеграла Нужно распараллелить метод средних прямоугольников. Долго не мучаясь, решил воспользоваться OpenMP, вот что получилось: // intagral_omp.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <omp.h> #include <iostream> http://www.cyberforum.ru/cpp-beginners/thread766602.html
C++ перевести число в масив символів двійкового коду
Покажите пример пожалуйста как это сделать ? и как его словами можно описать? Добавлено через 35 минут И вот ответьте на вопрос пожалуйста. що повертає рядок з одного символу по інший с++?
Можно ли обобщить оператор delete ? C++
Здравствуйте! Есть некоторый класс в котором есть указатель которому присваивается некоторое значение "из-вне" так сказать, так вот его деструктор должен освобождать память на которую указывает этот указатель. Но классу ничего не известно о тому на что указывает этот указатель (массив/переменная), и надо как-то удалять, если использовать для этого: delete pointer; не вызовет ли это у меня...
C++ Передача в функцию метод класса http://www.cyberforum.ru/cpp-beginners/thread766553.html
Не получается передать в функцию метод класса... hge->System_SetState(HGE_FRAMEFUNC,&GameManager::UpdateScene); hge->System_SetState(HGE_RENDERFUNC,&GameManager::RenderScene); Выпадает ошибка: e:\source\visualstudio2008\project\phenomen\phenomen\source\c_gamemanager.cpp(18) : error C2664: 'void HGE::System_SetState(hgeBoolState,bool)' : cannot convert parameter 1 from...
C++ Конвертация чисел с плавающей запятой в HEX Если несложно, исправьте, пожалуйста, код, чтобы и для дробей работало: #include <iostream> #include <cctype> using namespace std; bool hexToDec( char *s, int &result ) { char c; int i = 0; подробнее

Показать сообщение отдельно
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
20.01.2013, 16:44     Перегрузка функций
Цитата Сообщение от pr1me222 Посмотреть сообщение
Не очень понятно как в функции int main про инициализировать массив и каким типом объявлять. Ведь в зависимости от желания пользователя могут в него вводится или числа или символы. И от этого уже зависит какая функция именно будет вызываться, для подсчета слов или четных чисел.
Весь смысл перегрузки - объединение множества различных функций, выполняющих по сути одни и те же действия, но имеющие специфичную для определённых типов и/или числа параметров реализацию, под одним именем. Какая из функций будет вызвана определяется ещё во время компиляции. Если вам нужен массив чисел, объявляете массив чисел, если нужен массив символов, соответственно объявляете массив символов.
Цитата Сообщение от pr1me222 Посмотреть сообщение
Очень прошу указать на мои ошибки(( По возможности объяснить.)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int func (char S [])
    {
        //int i;
    //  char a[30];
    int space=0;
    for (int i = 1; i<= strlen(S); i++)
    {
        if (S[i] == ' ')
        {
            space++;
        }
    }
    return space+1;
}
Цикл for не мешало бы переписать так
C++
1
2
3
// индекс первого элемента массива всегда 0
// признак конца С-строки символ '\0'
for (int i = 0; S[i] != '\0'; i++)
более удачный алгоритм подсчёта слов в строке можете посмотреть здесь
C++
1
2
3
4
5
6
7
8
9
10
11
12
int func (int s)
{ 
    double a[20];
    int i,p;
    s=0;
    for (i=0; i<20; i++)
        if (a[i]/2==0)
    {
    s++;
    }
        return s;
}
C++
1
2
3
4
5
6
7
8
int func (int a[], int n) // a - массив; n - количество символов в массиве
{ 
    int s = 0;
    for (int i = 0; i < n; i++)
        if (a[i] % 2 == 0) s++; // подсчёт чётных чисел (% - извлечь остаток от деления двух целых чисел)
 
    return s;
}
Функцию main можете оформить приблизительно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const int s_len = 256;
char s[s_len];
 
cin.getline(s, s_len); // ввод строки
if(!cin) return 1; // ошибка ввода        
 
// вызов func и вывод результата
 
//---------
 
const int a_len = 10;
int a[a_len];
 
// ввод элементов целочисленного массива
for(int i = 0; i < a_len; ++i)
{
    cin >> a[i];
    if(!cin) return 1; // ошибка ввода    
}
 
// вызов func и вывод результата
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru