2017-07-11 1 views
-3
class bus { 

private:  
    string arr[10] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; 

public:  
    void reservation(); 

}; 

ここでは、パブリッククラスの予約()を通じてアクセスして変更したいプライベートアレイがあります。C++のプライベートクラスの配列にアクセスする方法は?

void bus::reservaton() { 

cout << "What should I write in here to change the 3rd and 7th index of the 
above array to \"not empty\"" << endl; 

} 

3番目と7番目のインデックスを「空ではない」としたい場合は、どうすればいいですか?

サンプル: -

string arr[10] = { "0", "1", "2", "not empty", "4", "5", "6", "not empty", "8", "9" }; 

そして、私がメイン機能で変更を加える必要がありますか?はいの場合は、それを書き留めて助けてください。 ありがとうございます。このため

+0

'のARR [3] = ' "空ではありませんか"? –

+0

メンバー関数はプライベートメンバーにアクセスできます。そうしないと両方ともかなり役に立たなくなります – user463035818

+2

この時点での最善の行動は、書籍または少なくともC++のチュートリアルを読むことです。真剣に。 – rustyx

答えて

0

How to use arrays

void bus::reservation() { 
    arr[3] = "not empty"; 
    arr[7] = "not empty"; 
} 
+0

これは構文的な砂糖です、完全な構文は "this.arr [3] =" not empty ";" –

+4

@RomanGroutは "full"を "wrong"に置き換えます。あなたのコメントは正しいです:P 'this'はポインタで、 this.arr'はうまく動作しません。とにかくメンバーの前に 'this->'と書くのは、純粋に趣味の問題です。 – user463035818

+0

@ tobi303はあまりにも厳しいものではありません。また、「this->」は単なる事柄ではない状況もあります趣味: –

0

、シンプルassignment operator (=)が働くだろう。

は、たとえば、次の例では、インデックス1の値が変更されます。

std::string slist[ 3 ] { "a", "b", "c" }; 
slist[ 1 ] = "Changed!"; 

ライブ例:http://ideone.com/rO9hwt

ところで、あなたの代わりに、配列のstd::stringstd::vectorを使用する必要があります。そして、out of boundsチェックでインデックスの値にアクセスするためのメンバー関数at()を見てください。

ライブ例:http://ideone.com/bcHZpY

関連する問題