问一个编译错误

问一个编译错误

struct ArrayInfo{
        ImgDist avg;
        ImgDist maxavg;
        ImgDist minavg;
        ImgDist th;
        ImgDist tl;
        ArrayInfo(ArrayInfo &src){
                avg=src.avg;
                maxavg=src.maxavg;
                minavg=src.minavg;
                th=src.th;
                tl=src.tl;
        }
        ArrayInfo operator =(const ArrayInfo &src){
                avg=src.avg;
                maxavg=src.maxavg;
                minavg=src.minavg;
                th=src.th;
                tl=src.tl;
                return *this;
        }
        ArrayInfo(){}
};
...
...
...
info=GetInfo(wnd);//GetInfo返回一个ArrayInfo
这句通不过诶
报错如下:
no matching function for call to `ArrayInfo::ArrayInfo(ArrayInfo)'
candidates are: ArrayInfo::ArrayInfo(ArrayInfo&)

我在vs2008下面都可以通过
为什么在codeblock(complier:GUN GCC Complier)下面通不过?
你的程序最后一行没有看懂,大至看出是个结构体套了个结构体,从报错来看,好像是某东西不匹配,如果有的环境可以,可能就是环境少了什么东西。你等高手吧,我只会C语言。
从no matching function for call to `ArrayInfo::ArrayInfo(ArrayInfo)'
candidates are: ArrayInfo::ArrayInfo(ArrayInfo&)
的报错来看,是不匹配啊,至于为什么在VS2008中通过编译,而在这里不能通过编译,我想你得查codeblock中的一些具体的规定与规则。这种现象是普通存在的。