我的函数如下:double CXzjdtdDlg::Getzjdhd(double H, double M, int z, double Mn,CArray<double,double&> Mi,CArray<double,double&> Qd)
调用时: CArray<double,double&> Mi;
CArray<double,double&> Qd;
         Getzjdhd(H,M,z,Mn,Mi,Qd);
出现错误:cannot convert parameter 5 from 'class CArray<double,double &>' to 'class CArray<double,double &>'
后来改成double CXzjdtdDlg::Getzjdhd(double H, double M, int z, double Mn,CArray<double,double&>* Mi,CArray<double,double&>* Qd)
 CArray<double,double&>* Mi;
CArray<double,double&>* Qd;
         Getzjdhd(H,M,z,Mn,&Mi,&Qd);
还是出现错误,求大师帮忙啊

解决方案 »

  1.   

    cannot convert parameter 5 from 'class CArray<double,double &>' to 'class CArray<double,double &>'
     没贴错吧?
      

  2.   

    double CXzjdtdDlg::Getzjdhd(double H, double M, int z, double Mn,CArray<double,double&> &Mi,CArray<double,double&> &Qd)
      

  3.   

    参考一下我的这个例子吧
    别忘了开启MFC static library#include <afxwin.h>
    #include <afxtempl.h>
    #include <iostream>
    using std::cout;
    using std::endl;
    void Fun(CArray<double,double> &d);
    void main()
    {
        CArray<double,double> d;
        d.Add(400.2);
        d.Add(543.321);
        d.Add(99.3);
        cout<<"before execute fun: " << d[0] <<" "<< d[1] << " " << d[2] <<endl;
        Fun(d);
        cout<<"after  execute fun: " << d[0] <<" "<< d[1] << " " << d[2] <<endl;
    }
    void Fun(CArray<double,double> &d)
    {
        int count = d.GetSize();
        for(int i=0; i<count; i++)
        {
            d[i] += 10;
        }
    }
      

  4.   

    其实用一个类型定义会更清爽#include <afxwin.h>
    #include <afxtempl.h>
    #include <iostream>
    using std::cout;
    using std::endl;
    typedef CArray<double,double> DArray; //定义一个Array类型
    void Fun(DArray &d);
    void main()
    {
        DArray d;
        d.Add(400.2);
        d.Add(543.321);
        d.Add(99.3);
        cout<<"before execute fun: " << d[0] <<" "<< d[1] << " " << d[2] <<endl;
        Fun(d);
        cout<<"after  execute fun: " << d[0] <<" "<< d[1] << " " << d[2] <<endl;
    }
    void Fun(DArray &d)
    {
        int count = d.GetSize();
        for(int i=0; i<count; i++)
        {
            d[i] += 10;
        }
    }