//클래스 (객체를 정의 할때 사용하는 키워드)ㄴ
/*
C 구조체 : 변수만 캡슐화 가능
C++ 구조체 : 변수와 함수 캡슐화 가능
기본접근지정자 : public
C++ 클래스 : 변수와 함수 캡슐화 가능
기본접근지정자 : private
*/
#include <iostream>
using namespace std;
class Person
{
private:
int age; // 0-200
string gender; //남성,여성
public:
void set_age(int _age)
{
if (_age >= 0 && _age <= 200)
age = _age;
else
age = 0;
}
void set_gender(string _gender)
{
if (_gender == "남성 " || _gender == "여성")
gender = _gender;
else
gender = "";
}
public:
void Print()
{
cout << age << "," << gender << endl;
}
};
int main()
{
Person per;
per.set_age(-1);
per.set_gender("????");
per.Print();
per.set_age(21);
per.set_gender("남성");
per.Print();
return 0;
}
캡슐화를 하는 이유 사용자가 나이에 -1을 입력하거나 성별에 ?? , 없음 이런식으로 입력하는 것을 방지하기 위해 값을 설정하는 함수를 public으로 기능을 사용가능하게 한다음 if문으로 조건을 설정하고 public으로 맴버 변수의 값을 초기화하는 것을 막는다
'C++' 카테고리의 다른 글
[C++클래스] 소멸자 (0) | 2023.11.08 |
---|---|
[C++ 생성자(클래스)]정의 및 고찰 (22) | 2023.11.07 |
[C++ 클래스] 생성자와 객체 초기화 (23) | 2023.11.07 |
[클래스사용하기전/구조체] 접근지정자 (12) | 2023.11.07 |
[C언어->C++언어 개념] 캡슐화 (0) | 2023.11.07 |