2016-09-23 10 views
-3

なぜこれが機能しないのですか?あなたはそれを変換するために、参照のアドレスを取得する必要があるの個々* 'に返される参照へのポインタが使用できないのはなぜですか?

+0

参照はポインタではありません。あなたは何をしようとしているのですか? – nneonneo

+0

この関数で要素へのポインタを設定しようとしています。 – Vincent

+0

私は、暗黙のポインタとして参照がしばしば実装されているという事実は、OPを混乱させていると思います。 –

答えて

1

を「個々の」からノー実行可能な変換:toBeEvolvedはstd::vector,.getIndividualであることは要素

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

Individual* in2 = tournamentSelection(0); 

コンパイル時エラーを返します。ポインタ。たとえ、リファレンスが "背後にある"コンパイラによってポインタとして扱われることがわかっていても、参照がポインタ変数として実装されるという明示的な要件はありません。また、明示的な&演算子を使用する必要がありますアドレスをポインタとして欲しいと伝えてください。だから、:

Individual* in2 = &tournamentSelection(0); 

他のポスターは、ポインタと参照の間distinctionにはるかに大きな深さに行っています。

関連する問題