우리는 private
속성에 접근하고 싶고, 바꾸고 싶은 상황이 있다.
이럴 때 사용자
와 privite
속성 사이의 인터페이스
를 이용할 수 있다.
값을 지정할 때 set
, 가져올 때 get
을 함수 앞에 붙여 사용한다.
public
접근 지정자에서 getFoo
와 setFoo
을 선언했다.
private
접근 지정자에 _foo
이름의 변수가 있다.
#ifndef SAMPLE_CLASS_H
# define SAMPLE_CLASS_H
class Sample {
public:
Sample(void);
~Sample(void);
int getFoo(void) const;
void setFoo(int v);
private:
int _foo;
};
#endif
getFoo
와 setFoo
함수의 매개 변수를 통해 _foo
의 값을 가져오고 설정하는 함수를 만들었다.
#include <iostream>
#include "Sample.class.hpp"
Sample::Sample(void) {
std::cout << "Constructor called" << std::endl;
this->setFoo(0);
std::cout << "this->getFoo()" << this->getFoo() << std::endl;
return;
}
Sample::~Sample(void) {
std::cout << "Destructor called" << std::endl;
return;
}
int Sample::getFoo(void) const {
return this->_foo;
}
void Sample::setFoo(int v) {
if (v >= 0)
this->_foo = v;
return;
}
실행!
#include <iostream>
#include "Sample.class.hpp"
int main() {
Sample instance;
instance.setFoo(42);
std::cout << "instance.getFoo():" << instance.getFoo() << std::endl;
instance.setFoo(-42);
std::cout << "instance.getFoo():" << instance.getFoo() << std::endl;
return 0;
}