c++问题,请大虾们指点!

来源:百度知道 编辑:UC知道 时间:2024/06/06 21:10:38
我是刚学C++请大虾们指点一下!我是想利用下面一段程序返回一个CIndividualinfo类型的对象best;这段函数是在类CPopulation中,并且CIndividualinfo类我已经建好了!

CIndividualinfo CPopulation::best()
{
int i;
CIndividualinfo good;
good=m_Individual[0];
for(i=0;i<=size;i++)
{
if (good.Fitness_value()>m_Individual[i].Fitness_value())
good=m_Individual[i];
}
return(good);
}
但编译时出现下面的错误:
d:\Backup\我的文档\Visual Studio Projects\MaintenanceOpt\Population.cpp(35) : error C2582: “operator =”函数在“CIndividualinfo”中不可用
d:\Backup\我的文档\Visual Studio Projects\MaintenanceOpt\Population.cpp(39) : error C2582: “operator =”函数在“CIndividualinfo”中不可用
d:\Backup\我的文档\Visual Studio Projects\MaintenanceOpt\Population.cpp(41) : error C2558: class“CIndividualinfo” : 没有可用的复制构造函数或复制构造函数声明为“explicit”
d:\Backup\我的文档\Visual Studio Projects\MaintenanceOpt\Population.cpp(49) : error C258

重载"="

因为系统内置的=号操作不能将一个数组里面的一项赋给CIndividualinfo类型 的变量
所以你要在类里面重载一下 =号
所谓重载= 就是重新定义=号运算的意义(就是操作),重新定义如何将数组里面的一项赋值给CIndividualinfo类型 的变量
具体重载的方法可以自己搜一下

得重载=