C++ 프로그래밍 6주차 정리
1. 멤버함수 getter와 setter
getter는 멤버변수를 불러오고, setter는 멤버변수에 값을 대입하는 함수이다.
캡슐화(encapsulation)로 인해 감춰진 멤버 변수에 접근하기 위해 사용한다.
아래 소스는 멤버함수를 내부에서 정의한 방식이다.
멤버함수를 내부에서 정의 시 자동으로 inline 함수가 된다.
#include <iostream>
class Dog
{
private: //class의 기본 속성이므로 생략 가능
int age;
public:
int getAge()//age를 리턴하는 getter 멤버함수
{
return age;
}
void setAge(int ageNum)//age에 값을 대입하는 setter 멤버함수
{
age = ageNum;
}
};
int main()
{
Dog coco;
coco.setAge(5);//setAge의 argument에 5를 넣어 age에 대입
std::cout << coco.getAge();//age의 값을 리턴
}
2. 멤버함수를 클래스 외부에서 정의하기
보통 내부 정의보다는 이 방식으로 사용한다. 클래스 내부에서 선언 후에 외부에서 정의할 수 있다.
외부 정의 시 범위지정연산자(::)를 사용하여 소속 클래스를 명시해야 한다.
#include <iostream>
class Dog
{
private: //class의 기본 속성이므로 생략 가능
int age;
public:
int getAge();//멤버함수 선언
void setAge(int num);
void bark();
};
int Dog::getAge()//멤버함수 정의(멤버함수를 정의할 때는 소속 클래스를 명시해야 함)
{
return age;
}
void Dog::setAge(int ageNum)
{
age = ageNum;
}
void Dog::bark() {
std::cout << "멍멍\n";
}
int main()
{
Dog coco;
coco.setAge(1);//setAge의 argument에 5를 넣어 age에 대입
coco.bark();
std::cout << coco.getAge();//age의 값을 받음
}
출처 : https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA/playlists, C++ 프로그래밍 강의 - 한성현 교수님