c++问题,请大虾们指点!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++问题,请大虾们指点!相关的知识,希望对你有一定的参考价值。
我是刚学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 C2582: “operator =”函数在“CIndividualinfo”中不可用
d:\Backup\我的文档\Visual Studio Projects\MaintenanceOpt\Population.cpp(53) : error C2582: “operator =”函数在“CIndividualinfo”中不可用
d:\Backup\我的文档\Visual Studio Projects\MaintenanceOpt\Population.cpp(55) : error C2558: class“CIndividualinfo” : 没有可用的复制构造函数或复制构造函数声明为“explicit”
这是什么意思?我该怎么改?由于本人是初学C++,请大虾们尽量解释得详细点!谢谢!!!
就是说计算机不知道你定义的对象用=是按照怎么的规则赋值的
另外一个问题是,你要定义一个复制构造函数,就是用一个CIndividualinfo型对象来初始化另外一个CIndividualinfo型对象的那种构造函数:
CIndividualinfo(CIndividualinfo indiv);
因为最后return的是一个对象。如果你return一个指针就没有第二个问题了。
其实这个函数定义的内容跟上面的重载=的内容差不多,就是定义一个赋值的规则。
参考资料:www.cppconst.com
参考技术A 重载"=" 参考技术B 因为系统内置的=号操作不能将一个数组里面的一项赋给CIndividualinfo类型 的变量所以你要在类里面重载一下 =号
所谓重载= 就是重新定义=号运算的意义(就是操作),重新定义如何将数组里面的一项赋值给CIndividualinfo类型 的变量
具体重载的方法可以自己搜一下 参考技术C 得重载=
elk问题,求教各位大虾!
【filebeat --> kafka --> logstash-->MongoDB|磁盘】架构进行日志收集
但是当logstash写入MongoDB有延迟,然后正常之后,会导致logstash循环收集kafka中的数据?
请各位大虾指点,是什么原因会导致这种情况,谢谢!
【PS】
我发现一个解决办法,重新更换logstash的group_id会使得日志收集正常,惑中。。。
以上是关于c++问题,请大虾们指点!的主要内容,如果未能解决你的问题,请参考以下文章
在打印预览上能看到只打一页,为啥打出来会有二页呢?而且第二页全部是空白。求大虾们指点。
如何在LABVIEW中调用C语言,具体的操作步骤是啥?请各位大虾指点!!如何再以DAQ的形式发送出去