ベストアンサー
パブリックとプライベートは、C ++のクラスの保護メカニズムです。メンバー変数/関数がパブリックの場合、クラス内のどこでも使用できます。メンバー変数/関数がプライベートの場合、そのクラスのメンバー関数からのみアクセスできます。
次のことをお勧めします。可能な場合はプライベートを使用してください。エンドユーザーがアクセスしてはいけないデータにアクセスできないようにする必要があります。たとえば、ユーザーがカードゲームをプレイできるようにするプログラムを書いていると想像してみてください。まず、プログラムはプレイヤーが持っているカードを印刷します。次に、ユーザーはプレイしたいカードを入力します。この場合、私はおそらくカードを何らかの方法でプライベートにしたいでしょう。ユーザーがカードを変更したり、存在しないカードを作成したりしたくありません。
プライベートメンバーの変数/関数にアクセスするには、パブリック関数を使用できます。たとえば、int numberというプライベート変数がある場合、その変数にアクセスするためのgetNumber()というパブリックメンバー関数を作成できます。このようにして、番号にアクセスしてどこでも使用できますが、番号が誤って使用されていることを心配する必要はありません。
class Count{
public:
/*numberPub can be used anywhere in the class Count */
int numberPub;
/*This will return our private variable, numberPri. This way, we can return the variable, but we do not have to worry about access, such as a user modifying the value when they shouldn"t. */
int getNumberPri();
private:
/*numberPri cannot be used anywhere in the class Count. If we want to use numberPri in Count, we must use getNumberPri() to access it*/
int numberPri;
};
回答
C ++のプライベートとは、クラスが内部でのみ使用でき、アクセスできないことを意味します上記のクラスの外部では、publicはクラスの外部からアクセスできることを意味します。
たとえば、クラスのインスタンスを作成した場合、プライベート変数とメソッドに直接アクセスすることはできません。しようとするとエラーになります。
class Example
{
private:
int private\_data;
int public\_data;
};
int main(int argc, char* argv[])
{
// create an instance
Example example;
// public variables and methods can be accessed
example.public\_data = 100;
// private variables and methods can only be accessed inside
// the class
// this next line will cause an error
example.private\_data = 1;
return 0;
}