본문 바로가기

C++ 기초 1

[C++] 2-3 클래스 변수 초기화 / 멤버 변수 초기화

클래스 변수 초기화
 

   클래스(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