为什么指向返回的引用的指针不可能?

时间:2016-09-23 23:54:26

标签: c++ pointers

为什么这不起作用? toBeEvolved是std::vector, .getIndividual返回元素

Individual& EvolutionaryAlgorithm::tournamentSelection(unsigned int i)
{
    return toBeEvolved.getIndividual(i);
}

Individual* in2 = tournamentSelection(0);

编译时间错误:没有可行的转换来自'个人'到个人*'

1 个答案:

答案 0 :(得分:1)

您需要获取引用的地址才能将其转换为指针。即使您可能知道引用被编译器处理为指针"在幕后",语言中没有明确要求将引用实现为指针变量,您仍然需要使用一个明确的&运算符告诉它你想要地址作为指针。所以:

Individual* in2 = &tournamentSelection(0);

其他海报在指针和引用之间distinction深入了解。