给位高手小弟最近编了一个程序,但有一个地方不知如何传递变量。如下
函数
A(double a,double b)//他不属于任何类
  {
     //新建一个属于B类的子类,在某个函数重要对fun重载。
      class c : public B
        {
             double fun(int x[],int y[])
              {
                  f=a*x[0]+b*x[1];
                     //中间省掉一些代码 
                     //
                     //
               return (f);
               }
         };
   }
我在编译时候提醒我a,b没定义。于是我将a,b改成全局变量(用extent double a,b)也还是不行.
那位高手能告诉我如何将a,b传递到那个子类的函数当中去阿。

解决方案 »

  1.   

    a,b是形参,当然会没定义了。首先定义一个全局变量
    double g_a,g_b;A(double a,double b)//赋值
    {
    g_a=a;
    g_b=b;
    //你的操作
    }//现在可以调用了
    class c : public B
            {
                 double fun(int x[],int y[])
                  {
                      f=g_a*x[0]+g_b*x[1];
                         //中间省掉一些代码 
                         //
                         //
                   return (f);
                   }
             };
      

  2.   

    好像还是不行,
    class c : public B
            {
                 double fun(int x[],int y[])
                  {
                      f=g_a*x[0]+g_b*x[1];
                         //中间省掉一些代码 
                         //
                         //
                   return (f);
                   }
             };
    上面这段建立新类的代码是在函数A(double a,double b)里面的
    而且我在定义全局变量double g_a,g_b;)(在stafx.h里 用extent double g_a,g_b 定义)的时候
    提醒我:misssing ";"before g_b ,我没少分号阿。