#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <iostream.h>
#include <time.h>
#include <crtdbg.h>

const double Pi = 3.14159265;
const double PI = 3.14159265;
const int    MAX = 2001;
const int    N = 100;              
const int    M = 200;                            
const int    NUM_PARA = 10;  
const int    CHILD_SIZE = 20;       double addu[MAX][7];
int Simulate_flag = 0;//下面有函数的申明,至于函数的定义由于代码很多,没一一写出来
void   Load_data(double desired[][7], int num);
double Delay_PendL2(double u, int Delay_Order3_flag);
double cal_fitness_pendL2(double para1[], double desired[][6]);
double Order3_PendL2(double para1[NUM_PARA], double u, int Delay_Order3_flag);
void  Simulate(double desired[MAX][6]);
void encode(double u[6], double y[6]);
//主函数
void main()
{
double real_para[NUM_PARA] = {385, 13709, 200, 7938, 3917888, 375, 24539, 242, 6007, 4687683};  
double desired[MAX][6];
double new_generation[M+CHILD_SIZE][NUM_PARA+1];
double para_min[NUM_PARA];
double para_max[NUM_PARA];
double fit_ratio[M+1];
double sel_chros1[NUM_PARA+1]; 
double sel_chros2[NUM_PARA+1];
double low = 0.8;  
double upper = 1.2;   
double Mp = 0;
double fit_pop = 0;     
int i = 0;
if(Simulate_flag == 0)
{
Load_data(addu,  MAX);
Simulate(desired);//这里函数输出了
}
}
上面的是个控制台程序(运行是成功的),代码涉及到遗传算法的,这个可以撇开不谈,现在主要的工作是把这段代码写到MFC中,
主要是写几个Edit Box控件与前面定义的几个变量MAX、M、N、NUM_PARA、CHILD_SIZE相关联,然后MessageBox输出计算结果就行了,如果这几个变量不是const类型的,代码很好整理到MFC中(这种情况很简单,整理进去不难)。现在关键的问题是这几个变量是const类型,还有double addu[MAX][7]这样的数组和void  Simulate(double desired[MAX][6])这种类型的函数直接引用了const类型的变量。这种情况就很困惑了,因为const数据成员的初始化只能在类构造函数的初始化表中进行,但是这种情况很复杂了,好像也是不可行。主要是在类中的哪里可以移入这些代码。
 望高人细心的解答一下我的困惑,本人主要是帮导师整理代码,对MFC了解不多,上面说的含糊的话,希望不要笑!

解决方案 »

  1.   

    给你写个简单的例子:
    class c
    {
    public:
    c();
    const int i1, i2, i3;
    };c::c()
    : i1(5), i2(6), i3(7)
    {
    }
      

  2.   

    const double Pi = 3.14159265; 
    const double PI = 3.14159265; 
    const int    MAX = 2001; 
    const int    N = 100;              
    const int    M = 200;                            
    const int    NUM_PARA = 10; 
    const int    CHILD_SIZE = 20;      
    上面的一砣数据放到一个固定的存放定义的头文件里面或者放在StdAfx.h里面