1.Test01.h
#include<string>
using namespace std;
class Test01
{
private:
string str;
int iNum;
float fNum;
public:
Test01(int iNum1,float fNum1,string str1); //생성자(int 변수,float 변수,string 변수)
~Test01();
int getiNum() { return iNum; } //이것들이 getter
float getfNum() { return fNum; } //이름 앞에 get을 붙여준다. 강제성은 아니지만 문법!
string getStr() { return str; } //private이라 다른곳에선 확인 불가능한걸 확인시켜준다.
void setiNum(int i) { iNum = i; } //이것들이 setter
void setfNum(float i) { fNum = i; } //getter처럼 이름 앞에 set을 붙여준다.
void setStr(string s) { str = s; } //private이라 다른 곳에선 건들지 못하는걸 건들게 해줌
};
1. getter와 setter 모두 이름 앞에 get과 set을 붙여준다.
안한다고 터지거나 하진 않지만 그렇게들 사용한다함.
2. getter,setter 모두 private이 걸려있는 것들에 접근가능하게 해줌
getter로 변수의 값을 가져올 수 있고 setter로 변경이 가능!
2.Test01.cpp
#include"Test01.h"
Test01::Test01(int iNum1,float fNum1, string str1) : iNum(iNum1),fNum(fNum1),str(str1)
{
}
Test01::~Test01()
{
}
1.생성자로 받은 매개변수의 값으로 헤더에 선언된 변수들을 초기화
3.main
#include<iostream>
#include<string>
#include"Test01.h"
using namespace std;
void main()
{
Test01 t01(14,3.145,"This onse's for you, saddam!");
//getter로 main에서는 불러올 수 없던 변수들의 값을 확인
cout << "변경 전 iNum : " << t01.getiNum() << endl;
cout << "변경 전 fNum : " << t01.getfNum() << endl;
cout << "변경 전 ch : " << t01.getStr() << endl << endl << endl;
//setter로 입력된 변수들의 값을 변경
t01.setiNum(50);
t01.setfNum(static_cast<float>(9.999));
t01.setStr("안녕하셰요 일런 머스큽니다");
//getter로 변경된 값을 확인.
cout << "변경 후 iNum : " << t01.getiNum() << endl;
cout << "변경 후 fNum : " << t01.getfNum() << endl;
cout << "변경 후ch : " << t01.getStr() << endl;
}
1. 처음 들어간 값은 14, 3,145 , "This onse's for you, saddam!" 이므로
변경 전 iNum : 14
변경 전 fNum : 3.145
변경 전 ch : This onse's for you, saddam!
이 출력된다.
2. 그 이후에
변경 후 iNum : 50
변경 후 fNum : 9.999
변경 후ch : 안녕하세요 일런 머스큽니다
라고 출력된다.
3. 이걸로 getter가 private 제한이 걸린 변수의 값을 가져올 수 있고
4. setter가 제한이 걸린 값을 변경할 수 있다는 걸 알 수 있다.
'C++' 카테고리의 다른 글
16.맵(map) (0) | 2021.05.25 |
---|---|
14.템플릿(template) (0) | 2021.05.24 |
12. 클래스의 상속 , 오버로딩과 오버라이딩 (0) | 2021.05.21 |
11. 클래스, 접근제어자 ,생성자 소멸자 (0) | 2021.05.20 |
10. 문자열 함수 (0) | 2021.05.20 |