为什么这不起作用? toBeEvolved是std::vector,
.getIndividual
返回元素
Individual& EvolutionaryAlgorithm::tournamentSelection(unsigned int i)
{
return toBeEvolved.getIndividual(i);
}
Individual* in2 = tournamentSelection(0);
编译时间错误:没有可行的转换来自'个人'到个人*'
答案 0 :(得分:1)
您需要获取引用的地址才能将其转换为指针。即使您可能知道引用被编译器处理为指针"在幕后",语言中没有明确要求将引用实现为指针变量,您仍然需要使用一个明确的&
运算符告诉它你想要地址作为指针。所以:
Individual* in2 = &tournamentSelection(0);
其他海报在指针和引用之间distinction深入了解。