최상의 답변
공개 및 비공개는 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;
};
Answer
C ++ private은 내부적으로 만 사용할 수 있으며 액세스 할 수 없음을 의미합니다. 공용은 클래스 외부에서 액세스 할 수 있음을 의미합니다.
예를 들어 클래스의 인스턴스를 만들면 개인 변수 및 메서드에 직접 액세스 할 수 없으며 그렇게하려고하면 오류가 발생합니다.
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;
}