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

Шаблоны и параметр по умолчанию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатель вне корректного диапазона http://www.cyberforum.ru/cpp-beginners/thread929584.html
void f(T a) { T v; T p* = &v; p--; *p = a; // тут p вне корректного диапазона, почему? } объясните этот момент плиз, я так понял, что когда мы дикрементируем указатель (p--), то т.к. указатель ссылался на начальный элемент массива типа T, то теперь он может ссылаться на другой тип, типа вышел из корректного lиапазона. Но почему не будет работать присваивание корректного адреса. Или...
C++ Погрешность вычислений Читаю книгу Дейтелов "Как программировать на С++", попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из этих данных вычислять миль/галлон и вычислить средний расход бензина, когда закончится ввод. Вроде все сделал правильно, но когда ввожу данные которые приведены в качестве примера у авторов, у меня средний расход считается почему - то с очень большой... http://www.cyberforum.ru/cpp-beginners/thread929580.html
C++ Битовые операции
Здраствуйте, помогите, пожалуйста! Надо написать три функции, используя только битовые (для первых двух) и только битовые и арифметические операции (для третей), которые: 1) Функция, которая возвращает 1, если значения битов в двух заданых позициях беззнакового длинного целого числа совпадают. 2) Функция, которая меняет местами соседние группы из 16 битов в заданом беззнаковом длинном...
C++ виртуальные базовые классы
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? попитался реализовать... // Using virtual base classes. #include <iostream> using std::cout;
C++ Какие требования нужно выполнить, чтобы стать Junior developer, Middle и Senior developer? http://www.cyberforum.ru/cpp-beginners/thread929530.html
Быть может не совсем в ту ветку форума написал, но мне показалось, что здесь я смогу получить квалифицированный ответ с большей вероятностью! Если что, уж извини админ! Пока только учусь в университете. Хочется понять как, кому и за что присваиваются квалификации Junior, Middle, Senior developer. Какие требования должен выполнить для этого программист? Сколько времени в среднем требуется на...
C++ error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) Добрый день,помогите пожалуйста разобраться почему не работает код.Заранее спасибо. #include <stdio.h> #include <iostream> int Add (int x, int y ); { std::cout << "In Add(), received " << first << " and " << second << endl ; return (first + second); } подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
27.07.2013, 18:28     Шаблоны и параметр по умолчанию
Добрый день. Вроде всё делаю по учебнику, но компилятор не пропускает:
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
#include <iostream>
#include <vector>
#include <cstdlib>
 
template<class T>
bool DefaultComparand(const T &, const T &);
 
template<class T, class Function = DefaultComparand<T>>
void Ssort(std::vector<T>& base, Function fn = DefaultComparand<T>() )
{
    int n = base.size();
 
    for (int gap = n / 2; 0 < gap; gap /= 2)
    {
        for (int i = gap; i < n; ++i)
        {
            for (int j = i - gap; 0 <= j; j -= gap)
            {
                if ( fn(base[j+gap], base[j]) == true )
                {
                    T temp = base[j];
                    base[j] = base[j+gap];
                    base[j+gap] = temp;
                }
            }
        }
    }
}
 
template<class T>
bool DefaultComparand(const T& first, const T& second)
{
    return first < second;
}
 
template<class BeginIterator, class EndIterator, class Function>
void For_Each(BeginIterator first, EndIterator last, Function fn)
{
    while (first != last)
    {
        fn(*first++);
    }
}
 
void Random(int& obj)
{
    obj = rand() % 100;
}
 
void Show(const int& obj)
{
    std::cout << obj << ' ';
}
 
int main()
{
    std::vector<int> vec(10);
 
    For_Each(vec.begin(), vec.end(), Random);
    For_Each(vec.begin(), vec.end(), Show);
    std::cout << '\n';
    Ssort(vec);
    For_Each(vec.begin(), vec.end(), Show);
    std::cout << '\n';
}
Добавлено через 3 минуты
Bash
1
2
3
4
5
6
main.cpp:8:54: error: spurious ‘>>’, use ‘>’ to terminate a template argument list
main.cpp:8:36: error: expected type-specifier
main.cpp:8:36: error: expected ‘>’
main.cpp:10:1: error: expected unqualified-id before ‘{’ token
main.cpp: In function ‘int main()’:
main.cpp:62:14: error: ‘Ssort’ was not declared in this scope
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru