클래스 변수 초기화
클래스(class)의 멤버 함수를 호출할 때 매개변수를 사용하여 데이터 멤버들의 값을 초기화할 수 있다. 아래 예제로 자세한 내용을 참고할 수 있다.
#include <iostream>
using namespace std;
class score {
private:
char* name;
int kor;
int eng;
double ave;
public:
void sub(char* n, int k, int e);
void sum_ave();
void output();
};
void score::sub(char* n, int k, int e)
{
name = n;
kor = k;
eng = e;
}
void score::sum_ave()
{
ave = double(kor + eng) / 2.0;
}
void score::output()
{
cout << "name=" << name << endl;
cout << "kor=" << kor << endl;
cout << "eng=" << eng << endl;
cout << "ave=" << ave << endl;
}
int main()
{
score x;
x.sub((char *)"Hong", 90, 95);
x.sum_ave();
x.output();
return 0;
}
결과
name=Hong
kor=90
eng=95
ave=92.5
※ 클래스의 데이터 멤버가 private으로 지정되었으므로 main() 함수 내에서 도트 연산자를 이용하여 이들 데이터 멤버에 직접 값을 대입할 수 없다. 이들 데이터 멤버들은 오직 멤버 함수에서만 참조할 수 있다.
※ 멤버 함수 sub(), sum_ave(), output()는 public으로 지정되었으므로 main() 함수에서도 참조할 수 있다.
※ private인 데이터 멤버들을 초기화시키기 위해 x.sub() 멤버 함수의 매개 변수를 사용했다.
참고
1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13
'C++ 기초 1' 카테고리의 다른 글
[C++] 2-5 클래스 객체 포인터 설명 및 예제 (0) | 2023.11.29 |
---|---|
[C++] 2-4 클래스 배열 초기화 설명 및 예제 (2) | 2023.11.28 |
[C++] 2-2 클래스 멤버 함수의 자동 인라인 (52) | 2023.11.24 |
[C++] 2-1 클래스(Class) 사용법 및 예제 (50) | 2023.11.23 |
[C++] 1-13 스토리지 클래스 (auto, register, static, extern) (47) | 2023.11.22 |