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

Вызов функции сразу для массива всего классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как осуществить циклический сдвиг элементов квадратной матрицы http://www.cyberforum.ru/cpp-beginners/thread943911.html
Помогите осуществить циклический сдвиг элементов квадратной матрицы размерности MXN вправо на k элементов таким образом: элементы 1-й строки сдвигаются в последный столбец сверху вниз, из него- в последнюю строку справа налево, из нее- в первый сторбец снизу вверх, из него - в первую строку. Для остальных элементов - аналогично. ЗАРАНЕЕ СПАСИБО!!!!!!!
C++ Включить dep в новом проекте как включить dep в новом проекте? использую visual studio 2010 express http://www.cyberforum.ru/cpp-beginners/thread943892.html
C++ прочитать текстовой файл без заморочек
Люди!! в билдере для чтения текстового файла делал так TStringList *List = new TStringList; List->LoadFromFile(File_name); потом к List обращался по строкам List есть ли для обычного с++ что-то подобное, чтоб можно было делать также и не заморачиваться
Область видимасти членов класса C++
Почему в данном коде функция xxx не распознаёт next как член класса? template<class T> class List { ... void xxx(); private: Node<T>* prev, next; };
C++ Как вывести на экран динамический массив? http://www.cyberforum.ru/cpp-beginners/thread943876.html
Как вывести наэкран динамический масив подскажите плиз #include <iostream> #include <conio.h> #include <time.h> using namespace std; class myMas { public: myMas();
C++ Shared_ptr собственная реализация Здравствуйте, написал собственную реалицацию "умных" указателей для класса object. Прежде чем попробовать написать шаблонную версию хочу удостовериться, что нет утечек памяти и прочих ошибок. Буду благодарен за всевозможную критику. Заранее спасибо. #ifndef SHARED_PTR_H #define SHARED_PTR_H #include<iostream> class object { int smth; подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
26.08.2013, 17:17     Вызов функции сразу для массива всего классов
Очевидно, вы про std::for_each с вызовом функции-члена в качестве параметра. Это, безусловно, тоже цикл, но написан за вас, хитрее и в одну строку.
Альтернатив не вижу. Нет синтаксиса в С++, который бы вызвал метод у всех элементов массива.

Пример с диспетчеризацией:
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
#include <iostream>
#include <algorithm>
#include <functional>
 
class Context {
 public:
  void drawPixel() {
    std::cout << "A pixel was drawn." << std::endl;
  } 
};
 
class Drawable {
 public:
  virtual void draw(Context &context) = 0;
};
 
class Pixel : public Drawable {
 public:
  virtual void draw(Context &context) {
    context.drawPixel();
  }
};
 
int main(int, char**) {
  Context context;
 
  const int numberOfDrawables = 10;
  Drawable *drawables = new Pixel[numberOfDrawables];
  
  // отрисовка всех Drawable в массиве
  std::for_each(drawables, drawables + numberOfDrawables,
    std::bind2nd(std::mem_fun_ref(&Drawable::draw), context));
  
  delete [] drawables;
  
}
 
Текущее время: 05:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru