2016-04-17 6 views
3

私は読んでいますThe C++ Programming Language, 4th EditionBjarne Stroustrup)約です。この例は、Bjarne StroustrupのC++プログラミング言語でどのように機能しますか?

彼は、次のコード例があります。

void f (const vector<double>& v){ 
    double d1 = v[1]; 
    v[2] = 7; 

    v.push_back(d1); 
} 

は、私の質問は:vは、私たちは関数の中で第二と第三の文でvを変更する方法のconstとして渡されているので?

私は、コードをコンパイルしようと、それは動作しません:

error: assignment of read-only location

だから私はここで何をしないのですか?私はそれがミスを犯した人Bjarneです疑う:D

おかげ

+0

あなたは例が与えられた文脈に焦点を当てていますか? –

+0

はい、私はかなり確信しています! :) 彼は通常、間違ったコードにエラーや何かを言っているコメントを付けます。今回はそうではない –

+1

それは単なる単純な間違いです。それで全部です。 –

答えて

7

は、更新されたバージョンには、以下があります。

void f(vector<double>& v) 
{ 
    double d1 = v[1]; // copy the value of the double referred to by v.operator[](1) into d1 
    v[2] = 7; // place 7 in the double referred to by the result of v.operator[](2) 
    v.push_back(d1); // give push_back() a reference to d1 to wor k with 
} 

だから、それはおそらく、次の印刷のために修正されました。

関連する問題