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

Оператор [] массива указателей на процедуры и методы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, которая по заданным координатам точки (x,y) определяет на какой линии или внутри какой области находится эта точка http://www.cyberforum.ru/cpp-beginners/thread662534.html
Построить чертеж. Обозначить получившиеся области плоскости. Составить программу, которая по заданным координатам точки (x,y) определяет на какой линии или внутри какой области находится эта точка.
C++ Шахматы, конь Всем доброго времени суток! Буду честен - в универе задали задачу на макс.балл(все предыдущие сделал, но с этой возникла проблемка). Условие следующее: Поле шахматной доски определяется парой натуральных чисел (номер вертикали – номер горизонтали) из диапазона 1-8. Конь, расположенный на поле (k, l), делает 2 хода. Угрожает ли он полю (m, n)? Собственно просьба: помогите составить сам... http://www.cyberforum.ru/cpp-beginners/thread662526.html
При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки. C++
/* 1) int a; int *b=&a; cout<<b<<endl; 2) char a; char *b=&a; cout<<b; */ Надо просто выдать адреса переменных. При работе с числами всё нормас. При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки.
Составить программу для вычисления значения выражения (без использования макрокоманды MAX и MIN) C++
C++ задачка с натуральными числами http://www.cyberforum.ru/cpp-beginners/thread662512.html
программа, которая в записи натурального числа минимальным вычеркиванием цифр оставляет подряд идущие цифры, которые 1) образ отрезок натурального ряда; 2) образ строго возрастающую последовательность
C++ Заполнить двумерный массив заполнить двухмерный массив размерности по правилу: 6 1 1 1 1 5 2 6 1 1 5 4 2 2 6 5 4 4 2 2 5 6 4 4 2 5 3 3 6 4 5 3 3 3 3 6 подробнее

Показать сообщение отдельно
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
03.10.2012, 01:49     Оператор [] массива указателей на процедуры и методы
как вариант
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
#include <iostream>
#include <functional>
#include <vector>
 
class test_class
{
public:
    typedef std::function<int (int)> functor_t;
 
    functor_t& operator [] (int index)
    {
        if(index < 0 || index > m_array.size())throw std::exception("out of range");
 
        if(index == m_array.size())
            m_array.push_back(0);
 
        return m_array[index];
    }
 
private:
    typedef std::function<int (int)> functor_t;
 
    std::vector<functor_t> m_array;
};
 
int some_function(int value)
{
    std::cout << "hello " << value << std::endl;
    return 0;
}
 
int main()
{
    test_class object;
    object[0] = std::bind(some_function, std::placeholders::_1);
    object[0](42);
 
    system("pause");
}
Добавлено через 20 минут
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
2
if(index == m_array.size())
 m_array.push_back(0);
Небольшая ремарка по своему же коду. Лучше вынести добавление нового элемента в отдельный метод. Ибо так, как есть сейчас, очень небезопасно и нелогично.
 
Текущее время: 12:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru