관리 메뉴
Automotive Software
멤버함수 기본값 vs 멤버함수 중첩 본문
- 멤버함수 기본값 선언
- 비클래스 함수의 기본값 선언 방식과 같은 법칙 적용
- 아래와 같이 함수 선언 시 기본값 선언, 예, bool takeInitVal = false;
- 선언된 또는 전달된 기본값을 토대로 전달받은 값을 사용할지 생성자에 의해 할당된 초기값을 사용할지 결정하도록 구현할 수 있음
class cMyClass
{
public:
cMyClass(int initMemVar1, int initMemVar2);
~cMyClass(){}
void memFunc(int inVal1, int inVal2, bool takeInitVal = false);
private:
int memVar1;
int memVar2;
};
cMyClass::cMyClass(int initMemVar1, int initMemVar2)
{
memVar1 = initMemVar1;
memVar2 = initMemvar2;
}
- 중첩 멤버함수
- 중첩 함수 1 : 생성자에서 전달된 기본값을 멤버변수 값으로 사용
- 중첩 함수 2 : 입력값을 가지는 중첩된 멤버함수를 구현하여 전달된 입력값을 기본값으로 사용
class cMyClass
{
public:
cMyClass(int initMemVar1, int initMemVar2);
~cMyClass(){}
void memFunc() const;
void memFunc(int inVal1, int inVal2) const;
private:
int memVar1;
int memVar2;
};
cMyClass::cMyClass(int initMemVar1, int initMemVar2)
{
memVar1 = initMemVar1;
memVar2 = initMemvar2;
}
// 중첩함수 1
cMyClass::memFunc() const
{
memFunct(memVar1, memVar2);
}
// 중첩함수 2
cMyClass::memFunc(int inVal1, int inVal2) const
{
// instead of member variables, input values are used
cout << inVal1+inVal2 << endl;
}
- 중첩 멤버함수는 언제 사용되는가?
- 초기에 적절할 기본값을 선언할 수 없을 때
- 매개변수 목록에 다른 형을 사용하고자 할 때
- 함수 내부의 구현 기능이 상이할 때
'프로그래밍 (Programming) > C++ (C Plus Plus) 기초' 카테고리의 다른 글
다형성 (Polymorphism) (0) | 2021.01.07 |
---|---|
상속 (Inheritance) (0) | 2021.01.02 |
연산자 중첩 (0) | 2020.12.29 |
객체 초기화 (0) | 2020.12.29 |
참조자 (0) | 2020.12.28 |