0

さて、私はC ++を初めて使用します。正しく質問できれば、これは簡単な質問になるはずです。基本的にこれは私が働く必要があるものです:

printInfoFromVector(this->mycontroller.createVector)

これは私が持っている実際のコードです:

vector<GasStation>& highPrices = this->myController.findHighestPrice();
    this->findPrice(highPrices);

vector<GasStation>& findHighestPrice(){

私が抱えている問題は、それらのタイプのhighPricesとfindHighestPrice()を一致させることができないことです。私は問題がrefを通過しているためだとかなり確信していますが、それを行う正しい方法はかなり確信しています。

タイプが一致するように代入ステートメントとメソッドヘッドを書く正しい方法を誰かに教えてもらえますか?

4

1 に答える 1

0

が新しいベクトルを計算している場合findHighestPriceは、参照を返すのではなく、実際のベクトルを返す必要があります。したがって、次のようになります。

vector<GasStation> findHighestPrice() { ... }
vector<GasStation> highPrices = this->myController.findHighestPrice();

たとえば、次のように定義findHighestPriceした場合

vector<GasStation>& findHighestPrice() {
  vector<GasStation> stations;
  // ...
  return stations;
}

その後stations、関数が戻ったときに割り当てが解除され、highPrices未定義になります。

于 2013-01-27T21:14:56.590 に答える