0
#include "stdafx.h"
#include<iostream>
#include<string>

using namespace std;

class Variable{
private:
string name;
public:
//This is my second question
    //
void setName(string x){
    name = x;
}
string getName(){
    return name;
}
};
int main(){
Variable Voject;
Voject.setName("Hello");
cout << Voject.getName() << endl;
return 0;
}

まず第一に、コードは完全に機能しています。残念ながら、私がチュートリアルを見ているとき、その男はクラスにすべての変数をプライベート クラスとして配置する必要がある理由を具体的に説明していませんでした (彼は、それはプログラマーの悪いマナーであり、決して変数を配置するべきではないと言っています)。公開クラス)。その説明をお願いします。

別の質問は、変数を設定して取得する必要があるプライベート クラスの変数を取得する場合です。では、本当に関数 setName と getName の名前を入力する必要がありますか? それとも、簡単に覚えられるだけですか。PS。私は初心者なので、できるだけ簡単に答えてください。

4

3 に答える 3

0

これはあなたの質問のために私が得た情報です。

  1. データ メンバーのアクセシビリティを細かく制御できます。セッター/ゲッターを介して、アクセスなし、読み取り専用アクセス、または読み取り/書き込みアクセスを実装できます。
  2. 機能の抽象化。関数を介してメンバーへのアクセスを実装すると、将来の変更により関数の実装を変更できます。コードを再コンパイルするだけで、外部の世界はそのまま残ります。
  3. ゲッター/セッターで何らかのチェックを提供できます。
于 2013-11-13T04:01:05.047 に答える
0
  1. プライベート変数

    他のプログラムが変数を自由に設定することを望まないため、副作用が生じる可能性があります。変数を設定または取得するときに、いくつかのチェックを行いたい場合があります。

  2. ゲッターとセッター

    C++ では、固定された名前の規則がありません。好きな名前を付けることができます。C++ のGoogle コーディング スタイルなど、いくつかの規則を使用することをお勧めします。

于 2013-11-13T03:38:48.980 に答える
0

ゲッターとセッターは、C++ ではあまり一般的ではなく、メンバーを公開するだけの方が一般的です。ゲッターとセッターの目的は、オブジェクトへの影響から値を切り離し、必要に応じてより複雑なコードを許可して、たとえば一貫した状態を維持できるようにすることです。

C++ での getter と setter の有用性に関する興味深い解説については、Getting Abstractionsを参照してください。TL;DR: ゲッターとセッターはパブリック変数よりもわずかに優れているだけです。代わりに、より高いレベルの抽象化を使用してみてください。

于 2013-11-13T03:35:57.287 に答える