Кинул на форму edit box
В нем нужно изменить значение по вызову функции, вызов функции находиться в функторе:
Вод код:
// 7prDlg.cpp : implementation file
//
#include "stdafx.h"
#include "7pr.h"
#include "7prDlg.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <time.h>
const short n = 10;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
/* вырезано за ненадобностью*/
using namespace std;
class MyFunctor
{
private:
int sum, sum2;
int count, count2;
int maxi, mini;
int val1, val2;
public:
MyFunctor():sum(0), sum2(0), count(0), count2(0), maxi(0), mini(0){};
void operator() (int val)
{
/* вырезано за ненадобностью*/
}
double get_MyFunctor()
{
CMy7prDlg::edit2_caption=" ";//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/* вырезано за ненадобностью*/
return 0;
}
};
//global value
MyFunctor func;
vector<int> vec;
void CMy7prDlg::OnBnClickedOk2()
{
/* вырезано за ненадобностью*/
}
void CMy7prDlg::OnBnClickedOk3()
{
double average = (for_each(vec.begin(), vec.end(), MyFunctor())).get_MyFunctor();
// TODO: Add your control notification handler code here
}
Строка помеченная воскл. знаками вина: при такой реализации выдает ошибку:
illegal reference to non-static member 'CMy7prDlg::edit2_caption'
если в .h прописать что static edit2_caption то:
error C2438: 'edit2_caption' : cannot initialize static class data via constructor
как же всетаки обратиться к этому editBox?