C++(Class 개념)

근형·2024년 12월 24일

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;

}

<>를 붙여 쓰면 안에 내용이 안나와서 사이를 뛰어썼음

getter와 setter

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;

}

0개의 댓글