반응형
생성자와 맴버 이니셜라이저는 객체의 맴버변수를 초기화하기 위해 사용됩니다. 어떤 클래스에서 volume 이라는 맴버변수를 초기화하는 상황을 가정하였습니다. 생성자와 맴버이니셜라이저 각각의 사용 예시는 아래와 같습니다.
생성자
tp(const float vol) //생성자 내용
{
volume=vol;
}
맴버 이니셜라이저
tp(const float vol)
:volume(vol) //맴버 이니셜라이저
{
}
생성자와 맴버이니셜라이저의 차이
생성자는 volume 이라는 변수를 선언한 뒤에 값을 입력합니다. 아래 과정이 수행되는 것입니다.
int volume;
volume=vol;
따라서 맴버변수인 volume 을 선언할 때 const 가 불가능합니다. 반면 맴버 이니셜라이저는 변수 선언과 동시에 초기화가 이루어집니다.
int volume=vol;
따라서 맴버변수에 const 선언이 가능합니다. 아래는 const 선언을 하고 맴버이니셜라이저로 초기화하는 전체 코드입니다.
#include <iostream>
#include <cstring> //strcpy 사용
using namespace std;
class tp
{
private:
const float volume; //const선언
public:
tp(const float vol); //생성자 선언
};
tp::tp(const float vol)
:volume(vol) //맴버 이니셜라이저
{
}
int main()
{
tp pure2080(150); //객체 생성과 동시에 초기화
}
반응형
'C++ > 클래스' 카테고리의 다른 글
[C++ 클래스의 이해] 3. 맴버 이니셜라이저란 무엇인가 (0) | 2022.08.23 |
---|---|
[C++ 클래스의 이해] 2. 생성자란 무엇인가 (0) | 2022.08.19 |
[C++ 클래스의 이해] 1. 클래스와 객체지향이란 무엇인가 (0) | 2022.08.19 |
[C++] 클래스와 구조체의 차이 (0) | 2022.08.18 |
댓글