Вот посмотрите, пожалуйста, программу:
| Код | #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <iostream> #include <conio.h> #include <algorithm> using namespace std;
class Cdisplay { int i; public: Cdisplay ( ); ~Cdisplay ( ); void display ( int x ); };
Cdisplay::Cdisplay ( ) { i = 0; }
Cdisplay::~Cdisplay ( ){ i = 0; }
void Cdisplay::display ( int x ) { std::cout << "A[" << ++i << "] = " << x << endl; }
void diler ( int z ) { Cdisplay A; A.display (z); }
int main() { Cdisplay G; int N = 4; int A[4] = {1, 2, 3, 4}; for_each ( A, A+N, diler ); std::cout << "----" << '\n'; for_each ( A, A+N, diler ); getch(); return 0; }
|
Как можно напрямую в алгоритме for_each вызвать метод класса display? Я пробовал создать объект и поместить его в алгоритм... Не выходит, компилятор выдает ошибку... Вообще как сделать, чтобы при выводе на экран, индексы массивов были 1,2,3,4 и 1,2,3,4 соответственно? У меня выводит 1,1,1,1... Буду признателен за любую помощь! |