Class는 우리의 동작을 공개하고 세부 데이터를 공개 하지 않습니다.
Class는 크게 동작과 데이터로 구성됩니다
동작 : 가장 큰점수 반환 / 과목의 평균 계산
데이터 : 각 과목의 점수
class Student
{
//동작 정의(이를 멤버함수라고 합니다)
double getAvg();
int getMaxNum();
//데이터 정의(이를 멤버변수라고 합니다.)
int kor[3];
int eng[3];
int math[3];
};
#include < iostream >
#include < algorithm > //max 함수 사용
#include < string >
using namespace std;
class Student
{
public:
//동작 정의(이를 멤버함수라고 합니다)
double getAvg();
int getMaxScore();
private: ◀ 접근 허가
//데이터 정의(이를 멤버변수라고 합니다.)
int kor;
int eng;
int math;
};
double Student::getAvg()
{
return (kor + eng + math) / 3.0;
}
int Student::getMaxScore()
{
return max(max(kor, eng), math);
}
int main()
{
Student s;
s.getAvg();
return 0;
}
<>를 붙여 쓰면 안에 내용이 안나와서 사이를 뛰어썼음
private에 있는 변수 제어시 getter와 setter 사용
멤버변수를 바꿀때 setter를 , 값을 가져올 때 getter를 사용
#include < iostream >
#include < algorithm > //max 함수 사용
#include < string >
using namespace std;
class Student
{
public:
//동작 정의(이를 멤버함수라고 합니다)
double getAvg();
int getMaxScore();
void setMathScore(int math)
{
this->math = math;
}
void setEngScore(int eng)
{
this->eng = eng;
}
void setKorScore(int kor)
{
this->kor = kor;
}
int getMathScore() { return math; }
int getEngScore() { return eng; }
int getKorScore() { return kor; }
private:
//데이터 정의(이를 멤버변수라고 합니다.)
int kor;
int eng;
int math;
};
double Student::getAvg()
{
return (kor + eng + math) / 3.0;
}
int Student::getMaxScore()
{
return max(max(kor, eng), math);
}
int main()
{
Student s;
//점수 입력(변수로 해도 되지만 간단히
s.setEngScore(32);
s.setKorScore(52);
s.setMathScore(74);
//평균 최대점수 출력
cout << s.getAvg() << endl;
cout << s.getMaxScore() << endl;
return 0;
}